Methods and Systems for Subscribing Remote Devices to Process Control Data

ABSTRACT

A system communicates process data to a remote computing device. The system includes a processor, a communication unit, and a memory storing instructions for modules. The modules include a scanner interfacing with the communication unit to enable communication with a server via a first network. The scanner enables communication by receiving data from the server, identifying polling requests in the data received, and transmitting request lists to the server in response to the polling requests. The modules also include a data stream processor determining a set of process data values in the data received, the set of process data values corresponding to view list data to be communicated to the remote computing device. Another module is an application program interface (API) interfacing with the communication units to enable communication with the remote computing device a second network by transmitting the set of process data values to the remote computing device.

FIELD OF THE DISCLOSURE

The present disclosure generally relates to mobile monitoring of processcontrol environments and, in particular, to a system for providingcustomizable, real-time awareness of process control systems on aplurality of mobile devices.

BACKGROUND

Distributed control systems (DCS) are used in a variety of processindustries including chemical, petrochemical, refining, pharmaceutical,food and beverage, power, cement, water and wastewater, oil and gas,pulp and paper, and steel, and are used to control batch, fed-batch, andcontinuous processes operating at a single site or at remote locations.Process plants typically include one or more process controllerscommunicatively coupled to one or more field devices via analog, digitalor combined analog/digital buses, or via a wireless communication linkor network. Collectively, the various devices perform monitoring,control, and data collection functions to control the process, safetyshutdown systems, fire and gas detection systems, machine healthmonitoring systems, maintenance systems, decision support, and othersystems.

The field devices, which may be, for example, valves, valve positioners,switches and transmitters (e.g., temperature, pressure, level and flowrate sensors), are located within the process environment and generallyperform physical or process control functions such as opening or closingvalves, measuring process parameters, etc. to control one or moreprocess executing within the process plant or system. Smart fielddevices, such as the field devices conforming to the well-known Fieldbusprotocol may also perform control calculations, alarming functions, andother control functions commonly implemented within the controller. Theprocess controllers, which are also typically located within the plantenvironment, receive signals indicative of process measurements made bythe field devices and/or other information pertaining to the fielddevices and execute a controller application that runs, for example,different control modules which make process control decisions, generatecontrol signals based on the received information and coordinate withthe control modules or blocks being performed in the field devices, suchas HART®, WirelessHART®, and FOUNDATION® Fieldbus field devices. Thecontrol modules in the controller send the control signals over thecommunication lines or links to the field devices to thereby control theoperation of at least a portion of the process plant or system.

Information from the field devices and the controller is usually madeavailable over a data highway to one or more other hardware devices,such as operator workstations, personal computers or computing devices,data historians, report generators, centralized databases, or othercentralized administrative computing devices that are typically placedin control rooms or other locations away from the harsher plantenvironment. Each of these hardware devices typically is centralizedacross the process plant or across a portion of the process plant. Thesehardware devices run applications that may, for example, enable anoperator to perform functions with respect to controlling a processand/or operating the process plant, such as changing settings of theprocess control routine, modifying the operation of the control moduleswithin the controllers or the field devices, viewing the current stateof the process, viewing alarms generated by field devices andcontrollers, simulating the operation of the process for the purpose oftraining personnel or testing the process control software, keeping andupdating a configuration database, etc. The data highway utilized by thehardware devices, controllers and field devices may include a wiredcommunication path, a wireless communication path, or a combination ofwired and wireless communication paths.

As an example, the DeltaV™ control system, sold by Emerson ProcessManagement, includes multiple applications stored within and executed bydifferent devices located at diverse places within a process plant. Aconfiguration application, which resides in one or more workstations orcomputing devices, enables users to create or change process controlmodules and download these process control modules via a data highway todedicated distributed controllers. Typically, these control modules aremade up of communicatively interconnected function blocks, which areobjects in an object oriented programming protocol that performfunctions within the control scheme based on inputs thereto and thatprovide outputs to other function blocks within the control scheme. Theconfiguration application may also allow a configuration engineer tocreate or change operator interfaces which are used by a viewingapplication to display data to an operator and to enable the operator tochange settings, such as set points, within the process controlroutines. Each dedicated controller and, in some cases, one or morefield devices, stores and executes a respective controller applicationthat runs the control modules assigned and downloaded thereto toimplement actual process control functionality. The viewingapplications, which may be executed on one or more operator workstations(or on one or more remote computing devices in communicative connectionwith the operator workstations and the data highway), receive data fromthe controller application via the data highway and display this data toprocess control system designers, operators, or users using the userinterfaces, and may provide any of a number of different views, such asan operator's view, an engineer's view, a technician's view, etc. A datahistorian application is typically stored in and executed by a datahistorian device that collects and stores some or all of the dataprovided across the data highway while a configuration databaseapplication may run in a still further computer attached to the datahighway to store the current process control routine configuration anddata associated therewith. Alternatively, the configuration database maybe located in the same workstation as the configuration application.

In many distributed process control systems, each field device in theprocess plant is assigned a unique device tag. The unique device tagprovides an easy way to reference the corresponding field device. Devicetags may be used during the configuration of the process control systemto specify the source or destination, respectively, of an input oroutput to a function block in a control module. Each signal type hasassociated with it a particular format or set of information, and thedevice tag for a particular device may have associated with it aspecific signal type such that when the device tag is associated with aninput or output of a function block, the function block knows the formatand information associated with the signal. In cases in which a fielddevice has multiple signals associated with it (e.g., a valve maymeasure and transmit both pressure and temperature), device signal tagsmay be associated with each signal of the field device.

For a variety of reasons, access to data of the process control systemhas traditionally been available only while on the process plantpremises and/or while using a device connected to the data highway thatcouples the operator workstations, controllers, data historians, andother equipment. Security is a particular concern with respect toprocess control systems and, as such, process control system operatorsgenerally physically separate the process control system from externalnetwork environments (e.g., the internet) to limit or preventopportunities for outside actors to cause damage to the process controlsystem, affect product quality or viability, or access or stealproprietary information.

More recently, a few mobile solutions have emerged that allow users toview some information from the process control system via mobile devicessuch as smart phones, even when not coupled directly to the processnetworks and data highways that make up the process plant. Thesesolutions allow monitoring of a single data source such as a datahistorian, and so the available data are limited to those data that arestored in the data historian (i.e., a small subset of the total data inthe process plant). Additionally, even the data that are available viasuch systems are not available in real-time (because of the frequencywith which data are stored to the data historian). Further, due to thedelays in data availability, and the limited subset of data available,alarms are generally not available via the mobile systems presentlyoffered and, to the extent alarm-like functionality may be available onsome mobile systems, the alarms are either not “native” to the processcontrol system (i.e., they are provided as a layer on top of the mobilesystem and require extensive and time-consuming engineering toimplement) or lack the real-time and historical data necessary toevaluate and troubleshoot the alarms.

SUMMARY

Some aspects of the systems and methods as described herein relate tosecure and timely communication of process data from a process controlsystem of a process plant to remote computing devices. The systems andmethods may allow secure access to any process data within the processcontrol system in real-time via a mobile server receiving the processdata from a data server, which in turn obtains the process data from theprocess control system in real-time as the data values are generated byor received by controllers within the process control system.

In embodiments, a method of securely subscribing a remote computingdevice to obtain process data from a process control system of a processplant includes receiving, at a mobile server via a first network from adata server, configuration data indicating a configuration of theprocess control system, and establishing, by the mobile server, acommunication connection with the remote computing device via a secondnetwork. The method also includes receiving, at the mobile server viathe second network from the remote computing device, an indication of aview list requesting process data associated with the process controlsystem. The process data corresponds to available data indicated by theconfiguration data. The method further includes receiving, at the mobileserver via the first network from the data server, a polling request fora list of data to be sent from the data server to the mobile server,determining, by the mobile server, the list of data based at least inpart upon the view list, and sending, from the mobile server to the dataserver via the first network, the list of data in response to thepolling request. Additionally, the method includes receiving, at themobile server via the first network from the data server, a plurality ofdata values associated with the list of data, and sending, from themobile server to the remote computing device via the second network, aview set containing at least some of the plurality of data valuescorresponding to the view list associated with the remote computingdevice.

In other embodiments, a computer system for communicating process datafrom a process control system of a process plant to a remote computingdevice includes one or more processors, one or more communication unitsconfigured to send and receive data via a first network and a secondnetwork, and a memory storing executable instructions that, whenexecuted by the one or more processors, cause the computer system toimplement a plurality of modules. The modules implemented include one ormore scanners that interface with the one or more communication units toenable communication with a data server via the first network. Inparticular, the scanners enable communication by receiving data from thedata server, identifying polling requests in the data received from thedata server, and transmitting request lists to the data server inresponse to the polling requests. The modules also include a data streamprocessor that determines a set of process data values in the datareceived from the data server, the set of process data valuescorresponding to view list data to be communicated to the remotecomputing device. Another included module is an application programinterface (API) that interfaces with the one or more communication unitsto enable communication with the remote computing device via the secondnetwork by transmitting the set of process data values to the remotecomputing device.

BRIEF DESCRIPTION OF THE DRAWINGS

The features and advantages of the methods, apparatus, and systemsdescribed herein will be best appreciated upon reference to thefollowing detailed description and the accompanying drawings, in which:

FIG. 1A is a block diagram of an example process control environmentaccording to the present description;

FIG. 1B is a flow diagram illustrating an example process in a processcontrol environment;

FIG. 1C is a block diagram of an individual unit within the exampleprocess of FIG. 1B;

FIG. 1D illustrates an individual process control entity in the unit ofFIG. 1C;

FIG. 1E is a block diagram illustrating the flow of product throughanother of the process control entities in the example process of FIG.1B;

FIG. 1F depicts two example display graphics that may be displayed inaccordance with the present description;

FIG. 1G depicts an example watch list that may be displayed inaccordance with the present description;

FIG. 1H depicts an example display showing data related to a particularitem on the watch list of FIG. 1G;

FIG. 1I depicts an example alarm list display according to the presentdescription;

FIG. 1J depicts a display that may be generated for a particular alarmin the alarm list of FIG. 1I;

FIG. 1K depicts an alternate display of the information in FIG. 1H, thatmay be shown when a device is rotated to landscape orientation;

FIG. 1L depicts a block diagram illustrating an overall architecture ofthe system for mobile information distribution in a process controlenvironment in accordance with the present description;

FIG. 2A is a flow diagram of an example data list configuration methodin a process control system of a process plant;

FIG. 2B is a flow diagram of an example configuration data search methodin a process control system of a process plant;

FIG. 2C is a flow diagram of an example data subscription method in aprocess control system of a process plant;

FIG. 2D is a sequence diagram of an example data subscriptioncommunication sequence in a process control system of a process plant;

FIG. 2E is a flow diagram of an example data server communication methodin a process control system of a process plant;

FIG. 2F is a sequence diagram of an example data server communicationsequence in a process control system of a process plant;

FIG. 2G is a flow diagram of an example mobile server communicationmethod in a process control system of a process plant;

FIG. 2H is a sequence diagram of an example mobile server communicationsequence in a process control system of a process plant;

FIG. 2I is a sequence diagram of an example view list subscriptionsequence in a process control system of a process plant;

FIG. 2J is a block diagram of an example data server in a processcontrol system of a process plant;

FIG. 2K is a block diagram of an example mobile server in a processcontrol system of a process plant;

FIG. 2L is a block diagram of an example mobile server internalcommunication architecture in a process control system of a processplant;

FIG. 2M is a flow diagram of an example alarm notification method in aprocess control system of a process plant;

FIG. 2N is a sequence diagram of an example alarm transmission sequencein a process control system of a process plant;

FIG. 2O is a block diagram of an example alarm notification architecturein a process control system of a process plant;

FIG. 2P is a flow diagram of an example alarm response method in aprocess control system of a process plant;

FIG. 2Q is a block diagram of an example web client implementation inaccordance with the systems and methods described herein;

FIG. 3A is a signal diagram of an example GUI generation sequenceexecuting on a mobile computing device;

FIG. 3B is an example representation of a list of lists GUI executing ona mobile computing device;

FIG. 3C is an example representation of a list of lists GUI executing ona mobile computing device;

FIG. 3D is an example representation of a watch list GUI executing on amobile computing device;

FIG. 3E is an example representation of a watch list item GUI executingon a mobile computing device;

FIG. 3F is an example representation of a watch list item GUI executingon a mobile computing device;

FIG. 3G is an example representation of an alarm list GUI executing on amobile computing device;

FIG. 3H is an example representation of an alarm item GUI executing on amobile computing device;

FIG. 3I is an example representation of a step in a process of combiningwatch list items via a watch list GUI executing on a mobile computingdevice;

FIG. 3J is an example representation of a step in a process of combiningwatch list items via a watch list GUI executing on a mobile computingdevice;

FIG. 3K is an example representation of a step in a process of combiningwatch list items via a watch list GUI executing on a mobile computingdevice;

FIG. 3L is an example representation of a step in a process of combiningwatch list items via a watch list GUI executing on a mobile computingdevice;

FIG. 3M is an example representation of a step in a process of combiningwatch list items via a watch list GUI executing on a mobile computingdevice;

FIG. 3N is a flow diagram of an example list configuration methodimplemented by a mobile computing device;

FIG. 3P is an example representation of an selection interface executingon a mobile computing device;

FIG. 3Q is an example representation of a search interface executing ona mobile computing device;

FIG. 3R is an example representation of a filter interface executing ona mobile computing device;

FIG. 3S is a flow diagram of an example user access configuration methodimplemented by a mobile computing device; and

FIG. 3T is an example representation of a user access interfaceexecuting on a mobile computing device.

DETAILED DESCRIPTION

As described above, known distributed process control systems lack theability for operators, maintenance personnel, and others associated witha process control system to maintain situational awareness when awayfrom operator workstations and/or away from the physical location of theprocess plant. As a result, plant personnel are unable to observe theoperation of the process control system and process plant unless theyare physically present. Because process plants typically operate withmultiple shifts, the observation and operation of the process plant isoften handed off multiple times each day. While plant personnel on aparticular shift may leave notes for those people on the followingshifts, these shift changes result in discontinuities in the operationand management of the processes and equipment, which can havedeleterious effects on product quality, plant efficiency, maintenance,environmental safety, regulatory compliance, and other aspects ofprocess plant management. Implementations of the systems, devices, andmethods for mobile information distribution described herein canmitigate many of the discontinuities resulting from such shift changes,and the issues associated therewith, provide increased situationalawareness for plant personnel, and result in additional advantages thatwill become apparent throughout the following disclosure.

FIG. 1A illustrates an example process plant network 10 including mobileservices infrastructure 12 for supporting a plurality of mobile devices14, not necessarily located on the process plant premises, having accessto data associated with the process plant. As will be described indetail herein, the mobile services infrastructure 12 facilitatesreal-time communication to the mobile devices 14 of any of the processplant data available within the process control plant network 10, whilemaintaining the security of the process plant network 10. Each of themobile devices 14 includes, among other elements, an application 16executable by the mobile device 14 to allow a user to interact with theprocess plant data via a graphical user interface (GUI) 18.

In general, plant personnel utilize one or more applications 20 tosupervise or control the operation of the process plant 10 and adistributed control system 22 implemented within the process plant 10.The viewing or monitoring applications 20 generally include a userinterface application that uses various different displays tographically depict process graphics to each of the operator and themaintenance technician and/or other users at workstations, such asworkstations 30 and 32.

The process plant environment of FIG. 1A also includes a graphicalconfiguration system 34. The graphical configuration system 34 generallyfacilitates the creation of control and monitoring schemes, includinggraphical displays, for control of the process plant. The graphicalconfiguration system 34 may include, for example, a configuration editor35 that can be used to control modules and control module templates,graphical displays and templates, and other aspects of the controlsystem, that are stored in a library, and that can be subsequently usedcreate instances or usages that are actually executed in the control ofthe process plant by downloading instances of the control modules to acontroller, or by executing instances of the graphical displays in userdisplays presented to, for example, the operator and maintenance person,during operation of the plant 10. Of course, each of the graphicsconfiguration system 34, the configuration editor 35, and the variouscontrol modules, templates, and graphical displays may be stored in atangible computer readable memory or medium and execute on one or moreprocessors to perform the functions described herein.

As is typical, the distributed process control system 22 illustrated inFIG. 1A has one or more controllers 40, each of which is connected toone or more field devices 44 and 46 (which may be smart devices) viainput/output (I/O) devices or cards 48 which may be, for example,Fieldbus interfaces, Profibus interfaces, HART interfaces, standard 4-20ma interfaces, etc. The controllers 40 are also coupled to the one ormore host or operator workstations 30-32 via a data highway 54 which maybe, for example, an Ethernet link. A process data database 58 may beconnected to the data highway 54 and operates to collect and storeprocess variable, process parameter, status and other data associatedwith the controllers, field devices and any other devices within theplant 10. During operation of the process plant 10, the process datadatabase 58 may receive process data from the controllers 40 and,indirectly, the field devices 44-46 via the data highway 54.

A configuration database 60 stores the current configuration of thedistributed control system 22 within the plant 10 as downloaded to andstored within the controllers 40 and field devices 44, 46. Theconfiguration database 60 stores process control functions defining theone or several control strategies of the distributed control system 22,configuration parameters of the devices 44, 46, the assignment of thedevices 44, 46 to the process control functions, and other configurationdata related to the process plant 10. The configuration database 60 mayadditionally store graphical objects or user displays as well asconfiguration data associated with these objects or displays asdescribed in more detail herein to provide various graphicalrepresentations of elements within the process plant 10. Some of thestored graphical objects may correspond to process control functions(e.g., a process graphic developed for a certain PID loop), and othergraphical objects may be device-specific (e.g., a graphic correspondingto a pressure sensor).

A data historian 62 (another database) stores events, alarms, commentsand courses of action taken by operators. The events, alarms, andcomments may pertain to individual devices (e.g., valves, transmitters),communication links (e.g., wired Fieldbus segments, WirelessHARTcommunication links), or process control functions (e.g., a PI controlloop for maintaining a desired temperature set point). Further, aknowledge repository 64 stores references, operator logbook entries,help topics, or links to these and other documentation that operatorsand maintenance technicians may find useful when supervising the processplant 10. Still further, a user database 66 stores information aboutusers such as the operator and the maintenance technician. For eachuser, the user database 66 may store, for example, his or herorganizational role, the user's span of control, an area within theprocess plant 10 with which the user is associated, work teamassociation, security information, system privileges, shift information,etc.

Each of the databases 58-66 may be any desired type of data storage orcollection unit having any desired type of memory and any desired orknown software, hardware or firmware for storing data. Of course, thedatabases 58-66 need not reside in separate physical devices. Thus, insome embodiments, some of the databases 58-66 may be implemented on ashared data processor and memory. In general, it is also possible toutilize more or fewer databases to store the data collectively storedand managed by the databases 58-66 in the example system of FIG. 1A.

While the controllers 40, I/O cards 48 and field devices 44, 46 aretypically located down within and distributed throughout the sometimesharsh plant environment, the operator workstations 30 and 32 and thedatabases 58-66 are usually located in control rooms or other less harshenvironments easily assessable by controller, maintenance, and variousother plant personnel. However, in some cases, handheld devices coupledto the data highway 54 may be used to implement these functions andthese handheld devices are typically carried to various places in theplant. Such handheld devices, and in some cases, operator workstationsand other display devices may be connected to the DCS 22 via wirelesscommunication connections. The handheld devices are distinguished fromthe mobile devices 14 in that the mobile devices are not necessarilypresent on the process plant premises and need not be coupled directly(via wired or wireless means) to the data highway 54.

As is known, each of the controllers 40, which may be, by way ofexample, the DeltaV™ controller sold by Emerson Process Management,stores and executes a controller application that implements a controlstrategy using any number of different, independently executed, controlmodules or blocks 70. Each of the control modules 70 can be made up ofwhat are commonly referred to as function blocks wherein each functionblock is a part or a subroutine of an overall control routine andoperates in conjunction with other function blocks (via communicationscalled links) to implement process control loops within the processplant 10. As is well known, function blocks, which may be objects in anobject oriented programming protocol, typically perform one of an inputfunction, such as that associated with a transmitter, a sensor or otherprocess parameter measurement device, a control function, such as thatassociated with a control routine that performs PID, fuzzy logic, etc.,control, or an output function that controls the operation of somedevice, such as a valve, to perform some physical function within theprocess plant 10. Of course hybrid and other types of complex functionblocks exist, such as model predictive controllers (MPCs), optimizers,etc. While the Fieldbus protocol and the DeltaV system protocol usecontrol modules and function blocks designed and implemented in anobject oriented programming protocol, the control modules could bedesigned using any desired control programming scheme including, forexample, sequential function block, ladder logic, etc., and are notlimited to being designed and implemented using the function block orany other particular programming technique. Each of the controllers 40may also support the AMS® suite of applications sold by Emerson ProcessManagement and may use predictive intelligence to improve availabilityand performance of production assets including mechanical equipment,electrical systems, process equipment, instruments, non-smart and smartfield devices 44, 46, etc.

As described, the DCS 22 includes one or more of the controllers 40communicatively coupled to the workstation(s) 30, 32 in the controlroom. The controllers 40 automate control of the field devices 44, 46 inthe process area by executing process control strategies implemented viathe workstations 30, 32. An example process strategy involves measuringa pressure using a pressure sensor field device and automaticallysending a command to a valve positioner to open or close a flow valvebased on the pressure measurement. The I/O cards 48 translateinformation received from the field devices 44, 46 to a formatcompatible with the controllers 40 and translate information from thecontrollers 40 to a format compatible with the field devices 44, 46.

Through the I/O cards 48, the controller 40 may communicate with thefield devices 44, 46 according to the control modules 70 that have beendownloaded to the controller 40. The control modules 70 are programmedusing the configuration system 34. In the configuration system 34, anengineer may create the control modules 70 by, for instance,instantiating one or more function blocks. By way of example, theconfiguration engineer may instantiate an AI function block to receivean analog input from one of the field devices 44, 46, which AI functionblock may receive a variety of values (e.g., a signal value, alarm hiand low limits, a signal status, etc.) associated with the analog outputof the field device 44, 46. The AI function block may output acorresponding signal to another function block (e.g., aproportional-integral-dirivative (PID) control function block, a customfunction block, a display module, etc.) Once the AI function block isinstantiated, associating the function block with a unique device tagassociated with the field device 44, 46 will cause the function block,once downloaded to the controller 40, to cooperate with the appropriateI/O card 48 to process information from the correct field device 44, 46.

In the plant network 10 illustrated in FIG. 1A, the field devices 44, 46connected to the controllers 40 may be standard 4-20 ma devices, may besmart field devices, such as HART®, Profibus, or FOUNDATION® Fieldbusfield devices, which include a processor and a memory, or may be anyother desired type of devices. Some of these devices, such as Fieldbusfield devices (labeled with reference number 46 in FIG. 1A), may storeand execute modules, or sub-modules, such as function blocks, associatedwith the control strategy implemented in the controllers 40 or whichperform other actions within the process plant, such as data collection,trending, alarming, calibration, etc. Function blocks 72, which areillustrated in FIG. 1A as being disposed in two different ones of theFieldbus field devices 46, may be executed in conjunction with theexecution of the control modules 70 within the controllers 40 toimplement process control, as is well known. Of course, the fielddevices 44, 46 may be any types of devices, such as sensors, valves,transmitters, positioners, etc., and the I/O devices 48 may be any typesof I/O devices conforming to any desired communication or controllerprotocol such as HART, Fieldbus, Profibus, etc.

With continued reference to FIG. 1A, the workstations 30 and 32 mayinclude various applications that are used for various differentfunctions performed by the personnel within the plant 10. Each of theworkstations 30 and 32 includes a memory 80 that stores variousapplications, programs, data structures, etc., and a processor 82 whichmay be used to execute any of the applications stored in the memory 80.In the example illustrated in FIG. 1A, the workstation 30 also includes,in addition to the display and viewing application 20, one or moreprocess controller configuration applications 84 which may include, forexample, control module creation applications, operator interfaceapplications and other data structures which can be accessed by anyauthorized configuration engineer to create and download controlroutines or modules, such as the control modules 70 and 72, to thevarious controllers 40 and devices 46 of the plant 10. The configurationapplications 84 also include the display or graphical configurationsystem 34 having the configuration editor 35, which may be used tocreate the control modules 70.

Broadly speaking, the viewing application 20 allows operators to viewdisplay modules configured to provide specific information about theoperation of specific areas of the process plant 10, and to control theoperation of the process plant 10 according to the information on thedisplay modules. The display modules are rendered on the workstations30, 32, and incorporate real-time process data received from thecontrollers 40 and the field devices 44, 46. As used herein, “real-time”communication of data refers to electronic communication of data throughelectronic communication networks with ordinary delays for processing,routing, and transmission, without the intentional introduction ofadditional non-trivial delays. In some embodiments, trivial delays ofless than five seconds (and preferably less than two seconds) may beintroduced to reduce network congestion when communicating data inreal-time. The display modules may be any type of interface that, forexample, enables an operator or other use to manipulate data values(e.g., perform reads or writes) to monitor or alter operation of thefield devices 44, 46, the control modules 70 and function blocks 72, andthe DCS 22 and process plant 10 as a whole. The display modules may bestored in the memory 80 of the workstations 30, 32, and may also bestored in the configuration database 60.

The control modules 70 and, in some embodiments, the display modules maybe part of a configuration file 74 in the configuration database 60.That is, the control modules 70 may be stored in the configuration file74 together with the display modules or separately from the displaymodules. In any event, the configuration file 74 generally stores theentire configuration of the DCS 22, including devices, device tags,friendly names, data formatting information (e.g., scaling information,unit types, etc.) which variables are associated with each control loop,the control strategies defined, etc. As indicated previously, theconfiguration file 74 may also be downloaded to the controllers 40 toimplement the control strategies defined in the configuration file 74.

As will be appreciated, the process plant 10 may include many hundreds,thousands, or even tens of thousands of signals, output fromtransmitters (i.e., sensors) on hundreds or thousands of field devices44, 46, and/or input to those field devices 44, 46 to cause the fielddevices 44, 46 to perform control functions according to the controlstrategies programmed into the control modules 70. The plant 10 may bedivided into different areas, multiples of which areas may be controlledby a single controller 40, each of which areas may be controlled by asingle controller or multiple controllers 40, or some combination. Inany event, the field devices 44, 46 that make up the process plant 10are likely to be duplicated individually many times over in the processplant 10 (e.g., there may be many of any type of valve, many pumps, manyheaters, many tanks, etc.). The field devices 44, 46 may also becombined into functional groups within a physical area (“processareas”), in which the field devices 44, 46 in that process area performa specific portion of the overall process. For instance, a particularprocess area may have the equipment for generating steam for other partsof the process. Within the process areas, there may be duplicated piecesor groups of equipment (“process units”) that share a similarconstruction and function. As an example, a process unit in the steamgeneration process area may include a boiler and a turbo generator, andthe process area may include multiple instances of this process unit.

By way of example, FIG. 1B depicts a flow diagram 100 illustrating theprocess for converting crude oil to other fuel products. At the entrypoint to the refining process, a crude unit 102 separates the componentsand distributes them for further downstream processing by other units.Each of the units may include a variety of equipment such as pumps,compressors, heat exchangers, reactors, tanks, separation anddistillation columns, as well as a variety of valves, transmitters,pumps, and the like. Many of the units may include common processingequipment. For example, heaters may be used in different ones of theunits.

With reference to FIG. 10, which depicts a block diagram of the crudeunit 102, the crude unit 102 includes a variety of field devices. WhileFIG. 10 depicts a desalter 104, a fired heater 106, a fractionator 108,a pump 110, and vessels 112, 114, the crude unit 102 also includes otherfield devices, such as temperature, level, and pressure transmitters,valves, etc., that are not depicted in FIG. 10. Each of the fielddevices, each group of devices, each process unit, and/or each processarea may have a corresponding display graphic that is used in thedisplay modules to represent it to the operator during operation of theprocess plant 10, and to include information specific to its operation.For example, the fired heater 106 may be represented in a display module116 with a limited set of parameters, as depicted in FIG. 1D.

In FIG. 1D, the fired heater 106 is depicted with six parameters. Thoughthe parameters will, of course, vary for each of the various pieces ofequipment and, in some cases, different uses of the equipment (e.g., theparameters included with the fired heater 106 used in the crude unit 102may differ from the parameters included with a fired heater used in adiesel hydrotreater), the parameters depicted in the display module 116include O₂ and NOx levels in the flue gas (118, 120, respectively),outlet temperature 122, process fluid flow rate 124, fuel gas pressure126, and draft pressure 128.

As another example, and referring back to FIG. 1B, the diesel fueloutput from the crude unit 102 flows to a hydrocracker 103. Thecomponents of the diesel hydrocracker 103 are depicted in a blockdiagram 130 in FIG. 1E, and includes a feed system 132, a set of heatersand reactors 134, a stripper 136, and a gas plant 138. Of course, eachof the components illustrated in FIG. 1E may be made up of several (ormany) sub-components. For instance, the set of heaters and reactors 134may include a single reactor or multiple reactors. Accordingly, thedisplay graphic corresponding to the reactors 134 may include a singlereactor or multiple reactors, and may be displayed differently dependingon whether one or multiple reactors are included, as depicted in FIG.1F. In FIG. 1F, a display graphic 140 depicts a single reactor, while adisplay graphic 142 depicts multiple reactors. Associated parameters foreach of the display graphics 140 and 142 are also depicted and, oneshould appreciate, may differ depending on the particular arrangementand use of the equipment depicted.

Personnel in a refinery, or any process plant, typically are notresponsible for monitoring or controlling the entire process plant.Instead, personnel have different “spans-of-responsibility.” Withreference to the example refining processes described above, forexample, a specific operator may be responsible for one of the crudeunits and several diesel hydrotreaters. Other operators may beresponsible for other sets of the same equipment (e.g., another crudeunit in the same process area, a crude unit in another process area,etc.), some operators may be responsible for different sets of equipment(e.g., a naptha hydrotreater), and still other operators may beresponsible for monitoring the process at a higher level (e.g.,monitoring the overall refining process or characteristics of one ormore of the output products). Each operator may view, monitor, and/ormanipulate a different display module according to the operator'sspan-of-responsibility. Operators having similarspans-of-responsibility—for example, two operators that are eachresponsible for a crude unit—may look at identical looking displaymodules (that, respectively, show the data for the crude unit for whicheach operator is responsible), while other operators may look atdifferent display modules adapted (i.e. designed or configured) to allowmonitoring and/or manipulation of the parameters, devices, and processescorresponding to the span-of-responsibility of each. Still otherpersonnel (e.g., not operators) may be responsible for environmentaloperations in the process plant, and may be interested in only theenvironmental parameters, alerts, and alarms associated with all of theequipment in the process plant, or subset of the equipment that may ormay not correspond to the equipment within one of the operators'spans-of-responsibility.

The data and displays available in real time to operators and otherpersonnel within the process plant, including real time processvariables and parameters, alarms, warnings, alerts, configurationinformation (e.g., from the configuration file 74), control modules 70,display modules, batch information (for batch processes) and the likeare collectively referred to throughout this specification as “processlevel data,” and may include all of the data stored by, processed by, orcommunicated by the controllers 40. Process level data are valuable tooperators, of course, but also to maintenance personnel and otherbusiness personnel who may need or desire to monitor the real-timeconditions of all or part of the process.

In the embodiments described herein, personnel may access the processlevel data (and, in some embodiments, additional data described furtherelsewhere in the specification) via the mobile devices 14. This may beuseful, for example, when an operator desires to monitor equipmentwithin his span-of-responsibility during periods while she is not atwork (e.g., during another shift), in order to keep watch on aparticular issue that occurred previously, or just to maintain someamount of situational awareness for the purpose of continuity duringshift changes (i.e., to have an idea of what has happened duringprevious shifts when coming back onto her shift). Meanwhile, maintenancepersonnel may wish to be alerted to problems that will need to beaddressed upon their return to the process plant. Still further,personnel on the process plant premises (e.g., “on-shift” operators) maywish to collaborate with colleagues who are not presently not on thepremises, to receive help diagnosing and/or resolving an anomaloussituation in the process plant, and having access to the process leveldata while not physically present at the process plant may facilitatesuch collaboration. Of course, there are many other reasons why plantpersonnel would benefit from the availability of plant level data on themobile devices 14.

Generally speaking, the contemplated embodiments facilitate access viathe mobile devices 14 to the plant level data by allowing users of themobile devices 14 to configure view lists. The view lists may includelists such as, by way of example and not limitation, watch lists, alarmlists, batch lists, calculation lists, system diagnostic lists, devicealert lists, Key Performance Indicator (KPI) lists, decision supportlists, and other derivatives of the “list” concept. FIG. 1G depicts anexample watch list 144 for the diesel hydrotreater 103 (labeled “DHT1”).The watch list for the diesel hydrotreater “DHT1” includes a variety ofitems 146, which may be customized by the user of the mobile device 14,and the order of which items in the list 144 may also be customized bythe user (as described later).

From the list 144, the user may select one of the watch list items toretrieve and view other information about that item including, asdepicted in a view 148 in FIG. 1H, historical values and otherassociated parameters such as tag, module name, friendly name,information source path, and other information that may be dependent onthe item selected from the watch list. For instance, in the case of acontrol loop, the items can include the process variable itself, itssetpoint, output, and scale, in addition to alarms and/or abnormalconditions associated with a process value. As will be described herein,much of the information displayed, and the manner in which it isdisplayed, is customizable by the user.

Just as the user could do in the process plant—for example from theoperator workstation 30, 32—the user may navigate quickly from displayeddata to related data. By tapping on an alarm, for instance, the usercould navigate to an alarm list 150, as shown in FIG. 1I, and/or to analarm view 152 (see FIG. 1J) from which the user may view the details ofthe alarm, such as the alarm name, description, time and date of thealarm, time to respond, functional classification, trends associatedwith the process value that triggered the alarm, recommended correctiveactions, etc. This is analogous to the manner in which an operator atthe workstations 30, 32 might interact with an alarm by clicking on itto see associated data.

The system may also provide the user with a list of key decisions towhich attention needs to be paid. These lists could involve operations,planning, maintenance, asset management, and the like. The priority ofthe decisions could reflect a rapidly changing and not easily specifiedin advance condition (commonly referred to as unstructured andsemi-structured decision problems). The decision support system could beeither fully computerized, human-powered, or a combination of both.

Additional information may be made available, in embodiments, byrotating the mobile device 14 to landscape orientation, as depicted inFIG. 1K, and the information may be navigated and viewed in greater orlesser detail by zooming in/out using touch gestures.

Further features will be described in detail with reference to theinfrastructure and system implementation.

System Architecture

Turning now to FIG. 1L, a block diagram illustrates an overallarchitecture 152 of the system for mobile information distribution in aprocess control environment. The architecture is generally divided intothree levels: a plant/process level 154, a data services level 156, anda mobile services level 158 that, collectively, include four to sixdifferent networks. The plant/process level 154 includes the fieldnetwork (not shown) coupling the controllers 40 to the field devices 44,46, and the control network (depicted in FIG. 1A as the data highway 54)coupling the controllers 40 to the workstations 30, 32, the databases58-66, and other components that are within the process control plant10. The plant/process level 154 may optionally include an intermediarynetwork 160 that may couple the control network 54 to other businesslevel applications. The plant/process level 154 is coupled to the dataservices level 156 by network 162. The data services level 156 iscoupled to the mobile services level 158 by a network 164. The mobileservices level 158 includes one or more other networks, such as theInternet and/or mobile telephony/data networks. Each of the layers 154,156, 158 and, in fact, each of the networks, may be isolated from theothers by hardware and/or software firewalls, in addition to othersecurity measures. The layered architecture allows isolation between thevarious networks 54, 160, 162, 164, etc.

At the plant/process level 154, a communicator interface 170 providesthe interface between the controllers 40 and the process plant 10 on oneside, and the data services level 156 on the other side. While a singlecommunicator interface 170 is depicted in FIG. 1L as communicating witha single controller 40 (and accordingly, with a single process plant10), the communicator interface 170 may communicate with a multiplicityof controllers 40 controlling a single process plant, where variousareas of the process plant 10 are controlled by separate controllers 40.It is also contemplated that, in embodiments, multiple process controlsystems 10 may be coupled to the data services level 156 and to themobile services level 158 by multiple communicator interfaces 170. In aspecific embodiment, a communicator interface 170 is coupled to eachprocess control system 10, and the group of communicator interfaces 170is coupled to the data services level 156. It is also envisioned thatthe multiple control systems may be physically located at differentsites (e.g., at different chemical plants).

The communicator interface 170 may be part of a larger portal 171 thatprovides the overall interface to the data services and mobile serviceslevels 156 and 158, respectively. The portal 171 may includefunctionality such as facilitating configuration of user information,device and system information, and software/hardware licenses.

Also in the plant/process level 154, a file interface 172 functions totransport the configuration file 74 to the data services level 156. Insome embodiments, the file interface 172 is part of a dedicated one ofthe workstations 30, 32 used to configure the process plant 10 andincluding the graphical configuration system 34, the configurationeditor 35, etc. In other embodiments, the file interface 172 may be partof the communicator interface 170. In any event, the file interface 172is coupled to the data services level 156 and transports configurationdata of the process plant to the data services level 156.

At the data services level 156, a data server 174 includes a number ofdifferent data services 176 that, collectively, receive data from thecommunication interface 170 and the file interface 172, and communicatethe received data to the mobile services level 158. Among the datareceived from the plant/process level 154 and communicated to the mobileservices level 158 are: alarms, process parameters, diagnostics,historical data, and configuration data. The various data services 176may also serve to index the configuration file 74 received from the fileinterface 172. The indexing operations may including indexing forspecific information such as module parameters and module hierarchy inorder to support detailed search capabilities, which may allow users tosearch for parameter names, device tags, alarms, or other data of theprocess plant 10.

A mobile server 178 is the heart of the mobile services level 158. Themobile server 178 supports connections to the mobile devices 14,supports configuration of the various lists to which the mobile devices14 are subscribed (e.g., alarm lists, watch lists, etc.), providessearch capabilities, and manages mobile notifications. The mobile server178 is also responsible for creating and maintaining the subscriptionsto various data from the data services 176. The mobile server 178 iscoupled to the mobile devices 14 over any of a variety of wireless datatechnologies, which may include Wi-Fi (i.e., protocols of the IEEE802.11 protocol suite) and/or mobile (“cellular”) infrastructure usingany of the various data services available presently or in the futureincluding, but not limited to, LTE services, some or all of which maymake use of the internet 180.

The mobile devices 14 may include mobile devices running the Androidmobile operating system developed by Google, mobile devices running theiOS mobile operating system developed by Apple, or any other operatingsystem presently known or developed in the future. For mobile devices 14running the Android and/or iOS mobile operating systems, notificationsmay be delivered to the mobile devices 14 via Apple or Googlenotification services 182, as will be readily understood by thosefamiliar with the use of such services. The mobile server 178facilitates configuration of the notification services at the systemlevel and/or at the user level.

With respect to configuration of the mobile information distribution,the mobile server 178 provides some configuration services via themobile device interface, which is native to the mobile devices 14. Themobile server 178 also provides configuration options via web pages(i.e., using a web browser). As will be described later, various alarmlists and watch lists may be configured via the web interface usingsearches (i.e., searching the indexed data of the configuration file 74)and/or filters, and taking advantage of the system hierarchyinformation, functional classifications, alarm priorities, alarmcategories, and the like. Additional details on the configuration of thesystem will be provided in later sections of this description.

The availability of the configuration data at the mobile services level158 may serve to provide a particularly rich mobile environment for theend user, because the system has access not just to the data, but to therelationships between the data. By way of example, instead of havingonly the status of an alarm (e.g., active) or the status of a parametervalue (e.g., normal, high, low, etc.), the mobile server 178, by way ofthe configuration data from the configuration file 74, has access to thecontextual relationships between the data and the data types. Thus, thesystem can determine that a particular active alarm is the result of aparameter status that is “high” and, in turn, that the parameter statusis “high” because the parameter data value exceeds a particular limit.As a result of this rich contextual information available to the mobileserver 178, the user interface is operable to present data in context—analarm may be depicted with real-time data and history, for instance, ora process variable may be depicted with the current and historicalset-point values and, optionally, relevant module relationships, whichmay allow the user to navigate from one data to other, related, databased on relationships between process control devices, function blocks,etc.

Process Data Configuration and Communication

As described more fully elsewhere herein, systems and methods forproviding process data associated with a process plant to remotecomputing devices are disclosed. The process data may include data fromcontrollers 40 via communicator interface 170, from process database 58,or otherwise communicated via the process plant network 10. In someembodiments, the process data may include or may be augmented by theaddition of additional data regarding the process plant, such as datastored in the data historian 62, knowledge repository 64, or receivedfrom a specialized server 186. The additional data may includehistorical data of past operation of the process plant, summary dataassociated with past or current operation of the plant, batch dataassociated with batches running or scheduled for the process plant,scheduling data associated with operation of the plant, maintenance dataassociated with the process plant, business data regarding efficiency orprofitability of the process plant, or other information associated withoperation of the process plant. The process data (and, if applicable,additional data) may be generated by or derived from informationgenerated by components in a process control system controllingoperation of part or all of the process plant, such as DCS 22.

The process data (and any additional data) are provided to the remotecomputing devices through the data server 174 and the mobile server 178.The data server 174 may implement data services 176 to obtain the datavia the process control network 162 and communicate with the mobileserver 178 via the remote access network 164. These networks 162 and 164may be separated by an existing firewall 166, thereby allowing securecommunication using existing network architecture. To further secure thenetwork communications and protect the process control system fromunauthorized access, the data server 174 may only accept requested datalists from the mobile server 178 in particularly preferred embodiments.In such preferred embodiments, the data server 174 may transmit pollingrequests for such lists to the mobile server 178. In response to apolling request, the mobile server 178 may transmit a list of requesteddata to the data server 174. In further embodiments, the data server 174may be configured to accept from the mobile server 178 only requesteddata lists, and such lists may only be accepted in response to a pollingrequest. For example, the data server 174 may be configured to acceptrequested data lists from known mobile server 178 only during apredetermined time period following transmission of each polling requestto the mobile server 178. The mobile server 178 may likewise beconfigured to transmit to the data server 174 only data request lists,and only in response to receiving from the data server 174 a pollingrequest.

Based upon received lists of requested data, the data server 174 mayobtain process data from the process control system via the processcontrol network 162. This may include requesting or subscribing to datastreams from one or more components within the process control system,such as process data associated with particular controllers 40 or fielddevices 46, 48. In some embodiments, the process data obtained by thedata server 174 or communicated to the mobile server 178 may includeonly L1 Data from the process control system. As used herein, “L1 Data”refers to process data generated by or used by or in the workstations30, 32 (e.g., display graphics and process entity visualizations), thecontrollers 40, or the field devices 44-46 of the process control systemin controlling the operation of the process plant. In other embodiments,additional data may be included. If additional data are requested in therequested data lists, the data server 174 may further obtain data fromadditional components through the process control network 10. Suchadditional data may include, by way of example and not limitation, oneor more of the following: key performance indicators (KPIs), batchinformation, maintenance information, efficiency information, knowledgebase information regarding equipment or conditions within the processplant, decision support information, or schedule information. The dataserver 174 thus obtains a plurality of data values from the processcontrol system. The data values may indicate specific process parametervalues, such as sensor output values, process flow rates, material inputor output values, equipment operating state values, derived or inferredvalues, control module parameter values, or any other values of types ofdata generated by or maintained within the process control system,including graphic display elements that may be used in operatorworkstations 30, 32. When the data values are obtained from the processcontrol system, the data server 174 may then identify or select any ofthe received data values corresponding to the requested data indicatedin the lists to send to the mobile server 178. The data server 174 thencommunicates the identified data values via the remote access network164 to the mobile server 178. In preferred embodiments, the data server174 receives and sends the requested process data values to the mobileserver 178 substantially in real-time as they become available (i.e., asthe process data values are generated within the process control system,with only ordinary communication delays). Thus, the data server 174 mayreceive a plurality of data streams from entities within the processcontrol system and may further transmit one or more data streams to themobile server 178 to establish real-time data subscriptions.

When the mobile server 178 receives the requested data values from thedata server 174, the mobile server 178 further identifies one or moreremote computing devices to receive one or more sets of the data values.The mobile server 178 then communicates the sets of data values to therespective remote computing devices via a mobile network, which mayinclude the remote access network 164, the Internet 180, or othernetworks facilitating communication between the mobile server 178 andthe remote computing devices. In some embodiments, at least part of themobile network may be an external network not associated with theprocess control system or the process plant (e.g., the Internet 180). Inparticularly preferred embodiments, the mobile server 178 communicatesthe sets of data values to the remote computing devices substantially inreal-time, as the data values are received from the data server 174.Thus, the remote computing devices may receive data streams of processdata values from the process control system. The remote computingdevices may be the mobile devices 14 described above, such as smartphones, tablet computers, wearable computing devices such as smartwatches, or other highly mobile computing devices. The remote computingdevices may also include notebook, netbook, desktop, or similarcomputers located remotely from the process plant and communicating withthe mobile server 178 via a web client 198 (e.g., a web browser orapplication running therein). In either case, the remote computingdevices communicate with the mobile server 178 via the mobile network toobtain process data values from the process control system. Inparticularly preferred embodiments, the remote access devices onlyreceive process data from the mobile server 178 and are not otherwise incommunication with the process control network. Thus, in suchembodiments, the remote access devices cannot access the process controlnetwork 10 or the process control system, except in the limited waydescribed herein through the mobile server 178 and the data server 174.

Such configuration enhances the security of the process control systemby limiting the access of the remote computing devices to receivingrequested data via the mobile server 178, which mobile server 178 itselfonly receives data from the data server 174. These additional safeguardsare important in process control systems because remote access (andparticularly remote control) of controllers 40 or other components ofthe process control system by unauthorized users presents a serious,potentially fatal hazard. Significant injury and damage to the processplant may occur if unauthorized users obtain control of equipment in theprocess plant. Even without control, unauthorized users may utilizenonpublic information regarding process plant operations (which mayinclude trade secrets) to the commercial detriment of the plantoperator. In traditional process plants, these problems are addressed inpart by physical security measures, such as restricting physical accessto workstations 30, 32 and other sensitive equipment. With remoteaccess, however, new means of securing the process plant beyond itsphysical boundaries are needed. While security could be achieved bylimiting or eliminating access to process data from remote locations,such limitations would prevent information regarding the plant fromreaching process plant personnel who need access to ensure properoperation of the plant.

To simultaneously address both issues, the systems and methods describedherein allow remote computing devices to access process data via themobile server 178, which communicates with the data server 174. Toobtain the data, the remote computing devices request data valuesassociated with data lists from the mobile server 178. The mobile server178 then sends one or more lists of requested data to the data server174 in response to polling requests. In some embodiments, the mobileserver 178 may generate a combined list of requested data from datalists received from a plurality of remote access devices. When datavalues are received from the data server 174, the mobile server 178 maythen determine which of the remote computing devices have requested datacorresponding to the received data values, based upon the data lists. Inany event, the mobile server 178 identifies data values received fromthe data server 174 and communicates the appropriate data values to oneor more remote computing devices via the mobile network. To identifyappropriate data values to communicate to each remote computing device,the mobile server 178 uses the data lists associated with each remotecomputing device.

The data lists may be received from the remote computing devices or maybe identified by data list indicators received from the remote computingdevices. For example, a remote computing device may request data valuesassociated with a predetermined data list stored in a memory of themobile server 178 by sending an indicator of the predetermined data listto the mobile server 178. Such requests may be automatically generatedby the remote computing device under certain conditions, or the requestmay be generated upon an action of a user of the remote computingdevice. The indicated data lists may be data lists previouslyestablished by a user of the remote computing device or may be shareddata lists available to a plurality of remote access device users. Thedata lists may be watch lists indicating process parameters to watch inthe process control system, view lists associated with data views todisplay on the remote computing devices (corresponding, in certain, butnot all, embodiments, with operator views available on workstations),alarm lists indicating alarms to monitor, or other types of data toreceive at the remote computing devices. Each list may include aplurality of entries identifying data sources within the process controlsystem (or additional data sources associated with additional data). Theentries may be associated with entities within the process controlsystem generating or otherwise providing process or additional dataassociated with the process plant, such as sensors, valves, controlmodules, function blocks, controllers, equipment units, process units,or areas. The entries may likewise be associated with process parametersassociated with operation of the process plant by the process controlsystem or conditions within the process plant. The entries may behierarchically related, such that some parameters or entities may besubsets of the data associated with a higher-level parameter or entity.For example, an area of the process plant may include several processunits, each of which may further include one or more equipment units,each equipment unit further associated with one or more control modules.The control modules may further be associated with a plurality ofprocess parameters. Thus, the data lists may directly or indirectlyreference data to be received, such as by requesting data for ahigher-level entity.

In particularly preferred embodiments, the data lists may be based uponthe same configuration data available to on-site operators.Specifically, the data lists may be generated based upon configurationfiles 74 from the process control system. Such configuration files 74may be received from the controllers 40, configuration database 60, orfile interface 172. The configuration files 74 may include informationregarding the configuration of the process control system used by thecontrollers 40 of workstations 30, 32 in operating the process controlsystem. As a particular example, the configuration files may be FHXconfiguration files used in the DeltaV™ control system, sold by EmersonProcess Management. The configuration data may include a plurality ofentries associated with entities or parameters within the process plant.Each entry may include a plurality of information items regarding theentity or parameter, which information items may be described by tagswithin the configuration data. Such tags may identify the entity orparameter, characteristics of the data values associated therewith, andother similar information. The tags may further indicate associationswith other entities within the process control system, such ashigher-level entities. In some embodiments, entries may include separatetags for different levels within the process control system, such as anarea tag (e.g., PLANT_AREA NAME=“AREA A”) a process unit tag (e.g.,PROCESS_CELL NAME=“PROCESSCELL1”), an equipment tag (e.g.,BATCH_EQUIPMENT_UNIT NAME=“UNIT1”), a control module tag (e.g., MODULETAG=“MODULE1”), or a module block tag (e.g., MODULE_BLOCKNAME=“MODULE1”). Thus, a module may have tags associating the modulewith a process plant area and equipment unit, as well as the module. Infurther embodiments, the tags may include paths associating the entityor parameter with higher-level entities. From these tags, a full systemarchitecture of the process control system may be determined. Thus, theremote computing device may request any process data within the processcontrol system based upon the configuration data.

In some embodiments, the data server 174 may obtain the configurationdata from the process control system via the process control network156, which configuration data may include one or more configurationfiles 74. The data server 174 may then send the configuration data tothe mobile server 178 via the remote access network 164. Theconfiguration data may be sent periodically, without a request from themobile server 178. The mobile server 178 may then store theconfiguration data locally within a memory of the mobile server 178 forcommunication to or searching by the remote computing devices.Configuration data may be further sent from the mobile server 178 to aremote computing device, or the remote computing device may search forconfiguration data based upon query parameters sent from the remotecomputing device to the mobile server 178. The remote computing deviceor mobile server 178 may then generate a data list based upon theconfiguration data. In embodiments in which the full configuration dataassociated with the process control system (or a part thereof) is sentto the mobile server 178, a fully authorized user of the remotecomputing device may access any information within the process controlsystem (or part thereof) as fully as though the user were operating aworkstation 30, 32 within the process plant. As discussed above,however, in preferred embodiments the user may still only be able toobtain data from the process control system, rather than controlling theoperation thereof. Nonetheless, the full access to search process dataand configure user displays on-the-fly from a remote computing deviceenhances operation of the process plant by allowing remote users accessto the same data and displays they could access on-site at the processplant. Additionally, just as is the case with the workstations 30, 32,the available data relationships (which may be determined from theconfiguration files 74) drive the content of the information displayedon the mobile devices. That is, both the particular parameters, values,statuses, and alarms shown and the presentation of those parameters,values, statuses, and alarms are determined, optionally in part, by thelogic and configuration of the process control system, and optionally inpart by the status of the system (e.g., based upon alarm states, unitstates, etc.). Authorization via user credential verification (e.g., viacertificate, log-in, etc.) or device whitelisting may, of course, beused to limit user access to a portion of the total data generated by orrelated to the process plant. Even so, the data available to each uservia a remote computing device may be the same data as would be availableto the user from a workstation 30, 32 within the process plant.

Alarms and other notifications of conditions within the process plantare of particular interest in this respect. Any alarm in the processcontrol system may be selected simply by inclusion in the data list.Additionally, any process parameter in the process control system maylikewise be monitored by inclusion in the data list. In someembodiments, a user of the remote computing device may set notificationor alarm criteria associated with any process data of the processcontrol system by inclusion in the data list or by otherwisecommunicating such criteria to the mobile server 178. The mobile server178 may then monitor the indicated process data and send any requestednotifications or alarms to the remote computing device when thecorresponding criteria are met. Because the data server 174 sends therequested process data values to the mobile server 178 substantially inreal-time as they become available, the mobile server 178 is able tosend the requested notifications or alarms to the remote computingdevice substantially in real-time. This is of particular importancebecause conditions within a process plant may require urgent attentionof a process plant operator. For example, a critical alarm condition mayrequire correction within minutes to avoid system failure, which mayresult in injury or damage, as well as significant plant downtime. Thesystems and methods described herein facilitate real-time alarm andnotification presentation to remote users by utilizing existing networkinfrastructure where available and providing access to processparameter-level data, rather than periodic updates of summary data. Infurther embodiments, the mobile server 178 may utilize notificationservices to push notifications or alarms to remote computing devices.Such notification services may include third-party services, such asthose associated with major operating system producers or cellularnetwork operators. Such notification services may cause the remotecomputing devices to receive and present to the user the notification oralarm regardless of whether the user is currently interacting with arelated application or program on the remote computing device.

These features of the presently described systems and methods are incontrast with prior art third-party systems, in which any data that canbe viewed on the mobile device must be stored in an intermediary storagelocation to be accessed by the third-party software, which both limitsthe amount of information available to the user of the mobile device(e.g. the user can only access the data that are being stored or alarmsthat are recreated in the intermediary application), and results indifferences between the data shown on the DCS (e.g., at the workstations30, 32) and the data shown on the mobile device, because the sample rateis too slow, resulting in data lags. Additionally, in contrast to theprior art third-party systems, the presently described systems andmethods provide a level of context for the data unavailable andunachievable in the prior art systems, because users are able tonavigate the data of the system according to what is presented (e.g.,selecting an alarm to see the real-time and/or historical processvariables, statuses, etc., that resulted in the alarm's generation orselecting alarm to view the relevant information available in the DCS(limits, etc.), module relationships (e.g. the hierarchy), etc.).

Exemplary embodiments are described below to provide additionalinformation regarding certain aspects of the systems and methodsdiscussed above. Although particular embodiments are described in detailto illustrate particular aspects, other configurations or processes arecontemplated within the scope of this application. Additional, fewer, oralternative components or actions may be included in other embodiments.

Data List Configuration

As discussed above, the remote computing devices receive data from theprocess control system based upon data lists requesting process data oradditional data from the data server 174. In some embodiments, this mayinclude generating or selecting a data list. In further embodiments,this may include searching for process data to monitor as a data list.In either case, the entries in the data lists may be selected based uponconfiguration data received from the process control system. Unlikeother techniques of providing limited and predetermined types of processdata to remote computing devices, the methods described below allow fullaccess to any L1 Data in the process control system. Additionally,set-up and configuration of the system is simplified because theconfiguration data already used by the process control system is alsoused to generate the data lists. Thus, the systems and methods describedherein facilitate greater access to process data while requiring lessinitial configuration and ongoing maintenance.

FIG. 2A illustrates an example data list configuration method 200 usingconfiguration data from the process control system to obtain a data listindicating process data to be communicated to a remote computing device.The data list configuration method 200 may be implemented by either thedata server 174 or the mobile server 178, or both the data server 174and the mobile server 178 may implement parts of the method 200. Themethod 200 begins with block 201, where the data server 174 or themobile server 178 receives configuration data from the process controlsystem. The configuration data indicates a plurality of entities orparameters within the process control system or process plant (or a partthereof). In some embodiments, the configuration data may be received asone or more configuration files 74 from a configuration database or fileinterface 172. The configuration files may include descriptions ofentities and parameters within the process control system, which mayinclude information used by the process control system to controloperation of the process plant. The configuration data may includeindications of various levels of entities, parameters, or other datawithin the process control system, including L1 Data. In particularlypreferred embodiments, the configuration data may include informationsufficient to construct a full hierarchy of all data levels for all L1Data within the process control system or part thereof. For example, aconfiguration file 74 may include entries for all parameters within theprocess control system, such as process parameters associated withfunction blocks within modules. Such entries in the configuration file74 may further include indicators associating the parameters withhigher-level entities within the process control system, such as controlmodules, equipment, or areas. Additionally, or alternatively, theconfiguration file 74 may further include additional entries for thehigher-level entities, which additional entries may include indicatorsof the entities and related entities or parameters (e.g., an equipmententity entry may include indicators of a plurality of control moduleentities associated with the equipment entity, which control moduleentity entries may include indicators of other control modules, functionblocks, or parameters associated with the control module entity).

At block 202, the data server 174 or the mobile server 178 identifies aplurality of levels within the process control system (or part thereof)based upon the configuration data. The levels may be associated with anyor all of the following: areas, process units, equipment, controlmodules, module blocks, or parameters. Entities or parameters may beassociated within higher-level entities, and higher-level entities maybe associated with lower-level entities or parameters. The configurationof the process control system (or part thereof) may thus be described asa hierarchy of entities and parameters. Identification of the levels mayinclude identifying tags associated with levels for the entities andparameters within the configuration data. For example, each entry withinthe configuration data corresponding to an entity or parameter mayinclude one or more tags indicating association with higher-levelentities. Such tags may be separated by level (e.g., area tags,equipment tags, control module tags) or may be combined into one tagspecifying a path within the process control system hierarchy (e.g.,specifying the associated higher-level entities within one tag value).At block 203, the data server 174 or the mobile server 178 may furtheridentify a plurality of control modules associated with the levels inthe configuration data. The control modules may be identified in asimilar manner to that used to identify the other levels, which mayinclude identifying control module tags within the process control data.Identifying the control modules may further include identifying functionblocks or parameters associated with the control modules. In someembodiments, the identification of levels and control modules may becombined.

At block 204, the data server 174 or the mobile server 178 generates ahierarchical list of the process control system (or part thereof) basedupon the identified levels and control modules. Each entity or parametermay be placed within an ordered hierarchy representing the configurationof the process control system (or part thereof). The hierarchical listis generated using the values of the entities and parameters associatedwith the plurality of levels and control modules identified in theconfiguration data. The configuration of the process control system (orpart thereof) may be described as a collection of nested sets, each setcontaining elements corresponding to lower-level entities or parameters,some of which elements may be subsets containing still lower-levelentities or parameters. In some embodiments, the sets or subsets may beoverlapping, viz. elements may be contained by multiple sets at the samelevel. In other embodiments, the sets and subsets may benon-overlapping, viz., each element belongs to at most one set at eachlevel. Each set may be identified as a sub-list or group of entrieswithin the hierarchical list having a common value within some field.Thus, the hierarchical list may include entries for all the L1 Datawithin the relevant process control system (or part thereof), which maybe organized in such manner as to allow for roll-up categoriesrepresenting each distinct set or subset associated with a higher-levelentity. Entities may thus be treated as roll-up categories for selectionby a user or generation of a view list, watch list, alarm list, or thelike.

In some embodiments, one or more hierarchical lists are generatedaccording to a display object in use in the process plant network 10.That is, the process plant network 10 and, in particular, thecontroller(s) 40 and/or workstation(s) 30 or 32 and/or the configurationdatabase 60 may have, stored in a corresponding memory device, aplurality of display objects governing the manner in which informationis displayed to operators of the process plant network 10. Inparticular, each display object includes depictions of, and/orinformation corresponding to, a plurality of process plant entities suchas the field devices 44, 46. For example, an overview display mayinclude all of the data and/or parameters determined to be critical inthe section of the process plant. The display objects are part of the L1data and/or are part of the configuration file 74. Thus, in someembodiments, the method 200 may include creating one or more watchlists, from the configuration file 74 and, in particular, creating theone or more watch lists according to the display object data. A defaultwatch list may be created to include all of the parameters/data that areassociated with a particular display object. A set of default watchlists may be created such that each includes the parameters/data thatare associated with a corresponding display object. Of course, thedefault watch lists may be editable as described herein. In furtherembodiments, the watch lists are updated automatically when theconfiguration of the associated display objects is updated in theconfiguration file 74, and in still further embodiments, thedata/parameters available to be added to each watch list are updatedaccording to the updated configuration file 74.

Additionally, a user may select an area, unit, or cell of the processplant 10 and the watch lists may be created to include some or all ofthe modules in the unit, area, or cell of the module, or may includemodules for which critical alarms are configured.

Alarm lists may also be auto-created to match the alarm configurationsof individual operator stations, such that an operator, when notphysically present in the plant and/or not at his/her workstation 30,32, may still monitor the alarms that he/she has configured as importantto his/her operational responsibilities. Alarm filter criteria,including alarm priority, function, and notification settings, asspecified in the configuration file 74, may also be used toautomatically create the alarm lists available for selection to monitorin the mobile application. As a result, a user of a mobile device mayselect a predefined list of alarms to monitor, may edit the predefinedlists, may create a new list of alarms to monitor, etc.

With respect to batch data, which, of course, may be viewed or monitoredin any of the watch lists, the alarm lists and watch lists may each beautomatically configured according to a particular batch, a particularrecipe, a particular set of batch equipment, etc.

At block 205, the data server 174 or the mobile server 178 maycommunicate information regarding the hierarchical list to anothercomputing device. Such information may be communicated periodically orupon the occurrence of a change within the hierarchical list (e.g., theaddition of a new entity or parameter, the removal of an existing entry,etc.). Such information may likewise be communicated in a summary formor as an indication of only changed information. The other computingdevice may be a remote computing device or may be the mobile server 178.When the hierarchical list is generated by the data server 174, the dataserver 174 may communicate the information regarding the hierarchicallist to the mobile server 178. In some embodiments, the data server 174may communicate only changed entries in the hierarchical list whenchanges occur. In further embodiments, the data server 175 mayperiodically communicate the full hierarchical list to verify accuracy,which full list may be communicated infrequently (e.g., daily, weekly,monthly). When the hierarchical list is generated by the mobile server178, the mobile server 178 may communicate the information regarding thehierarchical list to one or more remote computing devices (e.g., mobiledevices 14). In some embodiments, the information may include a limitedlist of entries within the hierarchical list. For example, the limitedlist may include entries the user or remote computing device isauthorized to access. As another example, the limited list may includeonly high-level entries (e.g., entries associated with areas or processunits). As yet another example, the limited list may include onlyentries associated with search parameters of a request or query from aremote computing device, such as in response to a user query forparticular types of data (e.g., equipment operating states,temperatures, malfunctioning valves, critical alarms, etc.). As stillanother example, the limited list may include only entries associatedwith an entity, such as an entity previously selected by a user of aremote computing device.

At block 206, the data server 174 or the mobile server 178 may receive aselection of one or more entries from the other computing device. Theselection may indicate a set of entries within the hierarchical listrequested by the other computing device. For example, a remote computingdevice may send an indication to the mobile server 178 selecting aparticular parameter or an entity for which to receive process data.Continuing the example, the mobile server 178 may further send anindication of the selected parameter or entity to the data server 174.In some embodiments, the selection may be received as an indicator of apredetermined set of entries (e.g., a preset view list or watch list)stored in a memory of the data server 174 or the mobile server 178. Forexample, an identifier associated with a predetermined view list may bereceived by the mobile server 178, which data list may include aplurality of entries to be requested.

At block 208, the data server 174 or the mobile server 178 maycommunicate data values corresponding to the selected entries to theother computing device. This may include communicating process datavalues from the data server 174 to the mobile server 178 orcommunicating process data values from the mobile server 178 to theremote computing device. In some embodiments, this may include sendingone or more streams of process data values substantially in real-time asthe process data values are received by the data server 174 or themobile server 178. Thus, the remote computing device may subscribe toone or more data streams associated with entities or parameters withinthe process control system. In some embodiments, the mobile server 178may further communicate additional data or historical process data(e.g., process data associated with the selected entries for the pasthour, day, etc.). Such data may provide context to the user of theremote computing device and may be presented as discussed elsewhereherein. Communication of process data values is described in furtherdetail elsewhere herein.

FIG. 2B illustrates an example configuration data search method 210 forsearching configuration data from the process control system to generatea data list indicating process data to be communicated to a remotecomputing device. The data list configuration method 210 may beimplemented by either the data server 174 or the mobile server 178, orboth the data server 174 and the mobile server 178 may implement partsof the method 210. In preferred embodiments, however, the method 210 isimplemented by the mobile server 178 receiving the configuration datafrom the data server 174 and receiving the query from a remote computingdevice. In such embodiments, the mobile server further receives processdata values from the data server 174 and sends the process data valuesto the remote computing device based upon the data list.

The method 210 begins with block 211, where the data server 174 or themobile server 178 receives configuration data from the process controlsystem, as described above with respect to block 201. At block 212, thedata server 174 or the mobile server 178 receives a query from anothercomputing device requesting process data, which query indicates one ormore search parameters associated with the process data. The query maybe generated by the other computing device in response to a userselection of the search parameters, such as by a user directly enteringsearch terms or selecting common query parameters (e.g., current alarms,running batches, process data for the past day of plant operation,etc.). The search parameters may specify particular entities or processparameters within the process control system, each of which may beidentified by user-friendly tag names or unique identifier numbers, forexample. Alternatively, the search parameters may indicate a type orclass of entity, such as a level, a process function, a type ofequipment unit, a type of alarm, a type of control module, a type ofsensor reading, etc. Beyond identifying entities or process parameters,the query parameters may specify other information. For example, thequery parameters may specify particular values (or ranges of values) forprocess data values, time frames for historic or summary data (e.g.,averages), other information to identify process data generated withinthe process control system, or additional non-process data associatedwith the process plant but not generated within the process controlsystem.

At block 213, the data server 174 or the mobile server 178 identifiesone or more entities or process parameters associated with the processcontrol system based upon the search parameters of the received query.As discussed above, the configuration data may include tags containinginformation regarding the entities or parameters within the processcontrol system. The tag values may be used to identify process data orparameters that are responsive to the query, i.e. matching the queryparameters. For example, some of the search parameters may indicatevalues associated with tags of entities or parameters within theconfiguration data, such as values indicating particular areas,equipment units, alarm statuses, or data types (e.g., “temp,”“pressure,” etc.).

At block 214, the data server 174 or the mobile server 178 generates alist of entries based upon the search parameters. The list of entriesmay include a plurality of entries indicating the identified entities orparameters. In some embodiments, the list may further include entriesindicating predefined lists (e.g., shared view lists) including entriesassociated with the identified entities or parameters. In furtherembodiments, the list may include related entries that are associatedwith the identified entities or parameters but that do not separatelymatch the search parameters. For example, each higher-level entityassociated with a matching entity or parameter may be included in thelist. Because the related entries do not directly match the searchparameters, the related entries may be marked in the list or included ina separate list to identify them as not directly responsive to thequery. These related entries may then be presented to the userseparately from the identified entities or parameters, or the relatedentries may be indicated by a graphical or stylistic indication in agraphical user interface. Generating the list may include determining asubset of the identified entities or parameters that the user or remotecomputing device is authorized to obtain. Such authorization may bedetermined based upon a user ID of the user or a device ID of the remotecomputing device.

At block 215, the data server 174 or the mobile server 178 communicatesthe generated list to the requesting computing device (e.g., the remotecomputing device). In some embodiments, this may involve sending onlypartial information regarding the entries to the requesting computingdevice, followed by additional information upon further request by theuser. Upon receiving the list from the mobile server 178, the remotecomputing device may present at least a portion of the list informationto the user. This may include presenting a list of entries, which may beorganized or ordered to provide the most relevant or more frequentlyselected entries in more prominent locations on a display. When the userselects a set of one or more of the entries (e.g., to add the entries toa view list, to form a new watch list, etc.), the remote computingdevice may communicate the selection of the set of entries back to themobile server 178. In some embodiments, the mobile server 178 maycommunicate an indication of the selected set of entries to the dataserver in response to a polling request from the data server 174.

At block 216, the data server 174 or the mobile server 178 receives theselection of the set of one or more entries from the list. Similar toother data list selections discussed herein, the selection may bereceived as a set of indicators of the entries or may be received as oneor more indicators of predetermined lists. In response to receiving theselection, the data server 174 or the mobile server 178 obtains datavalues from the process control system and communicates data valuesassociated with the selected entries to the remote computing device atblock 217. As discussed elsewhere herein, the mobile server 178 mayrequest the process data or additional data from the process controlsystem by sending an indication of the requested process data to thedata server 174 in response to a polling request from the data server174. The data server 174 obtains a plurality of data values from theprocess control system and communicates the requested data values to themobile server 178. The mobile server 178 then communicates the requesteddata values associated with the selected entries to the mobile computingdevice. Thus, the remote computing device may subscribe to one or moredata streams associated with entities or parameters within the processcontrol system using a query to identify and request data, as describedabove. In some embodiments, the mobile server 178 may furthercommunicate additional data or historical process data (e.g., processdata associated with the selected entries for the past hour, day, etc.).Such data may provide context to the user of the remote computing deviceand may be presented as discussed elsewhere herein.

Process Data Subscriptions

In order to securely subscribe remote computing devices to process datastreams and to obtain additional data without compromising the securityprotections of the process control system, the following systems andmethods may be used. As discussed above, the remote computing devicesmay obtain data values from the mobile server 178, which may in turnobtain the data values from the data server 174. The data server 174obtains the data values from the process control system, such as fromcontrollers 40 via communicator interface 170, from process database 58,the data historian 62, knowledge repository 64, or from a specializedserver 186. In preferred embodiments, the data server 174 sends apolling requests to the mobile server 178, and the mobile server 178sends a list of requested data to the data server 174 only in responseto the polling requests. Such list of requested data may include onlychanged data requests, such as data subscriptions to add or remove(i.e., indicators of new data not previously requested or indicators ofdata previously requested but no longer requested). Because the processdata subscriptions may be configured as needed as discussed above, thesubscription methods described herein provide access to L1 Data from theprocess control system. Additionally, the process data may becommunicated to the remote computing devices substantially in real-timewithout undermining the security protections in place in the processcontrol system to protect the process plant from malicious or otherunauthorized access. Moreover, the mobile server 178 may obtain onlydata actually requested, thereby reducing the process and storagerequirements, while still providing access to the full range of L1 Data.By establishing the data subscriptions as needed while the process plantis operating, initial set-up and later system reconfiguration arereduced. Thus, the systems and methods described herein facilitate moreextensive and timely access to process data, while requiring lessinitial configuration and ongoing maintenance.

FIG. 2C illustrates an example data subscription method 220 forselecting and obtaining process data at a remote computing device. Thedata subscription method 220 may be implemented repeatedly to establish,edit, adjust, or terminate data subscriptions for one or more remotecomputing devices, and the data subscription method 220 may beimplemented in conjunction with one or more of the other methodsdescribed herein.

At block 221, the data server 174 receives a configuration file 74 orother configuration data from an entity within the process controlsystem. The configuration file 74 may include configuration dataregarding the process control system and may be received from a fileinterface 172 or a configuration database 60, as described elsewhereherein. At block 222, the data server 174 may communicate dataassociated with the configuration file 74 to the mobile server 178,which may involve sending the configuration file 74, a portion of theconfiguration data contained therein, or configuration data derivedtherefrom by the data server 174. At block 223, the mobile server 178may provide access to the configuration data to one or more remotecomputing devices. Providing access to the remote computing devices mayinclude sending a list of available data or establishing an interfacefor searching the configuration data. As discussed elsewhere herein, themobile server 178 may provide access to less than the full configurationdata in some instances, such as by providing access to a portion of theconfiguration data for which the user is authorized.

At block 224, the mobile server 178 receives one or more view listindicators from the remote computing devices via the mobile network,indicating process data (and any additional data) requested by theremote computing devices from the process control system. In someembodiments, a user log-in event on a remote computing device may causea default view list indicator to be sent automatically from the remotecomputing device to the mobile server 178. Such default view listindicator may be interpreted by the mobile server 178 as a request forthe same data last requested by the user. Upon receiving one or moreview list indicators, the mobile server 178 may determine or generate alist of requested data. Such list of requested data may be a combinedlist of all data requested by a plurality of remote computing devices,which may further be condensed by removing redundant entries. The mobileserver 178 may update such combined list of requested data whenever anew indicator is received from any remote computing device, includingindicators of a remote computing device terminating a previous request.To facilitate later transmission of the data values to the appropriateremote computing devices, the mobile server 178 may further maintain oneor more lists associating requested data with specific remote computingdevices. In some embodiments, this association data may be included inthe combined list of requested data. In further embodiments, the mobileserver 178 may additionally generate a list of requested changes, whichmay include only entries indicating changes to the requested processdata (or additional data) received from the remote computing devicessince the previous data request was send to the data server 174. Bytransmitting such list of requested changes, rather than the full listof requested data, the mobile server 178 may efficiently communicatewith the data server 174.

At block 225, the data server 174 transmits a polling request to themobile server 178 via the remote access network 164, requestinginformation regarding the data requested by the remote computingdevices. The polling request may be sent periodically at intervalsslower than some process data values update, thereby reducing the totaldata to be transmitted via the remote access network 164. In response toreceiving the polling request, the mobile server 178 then transmits alist of requested data to the data server 174 via the remote accessnetwork 164 at block 226. As noted above, in some embodiments, the listof requested data may be a combined list and may further be a list ofrequested changes. In preferred embodiments, the mobile server 178 maytransmit the list only in response to receiving polling requests fromthe data server 178. In further embodiments, the data server 174 may beconfigured to accept lists of requested data only from the mobile server178 and only during a predetermined interval following each pollingrequest. Noncomplying requests may be ignored by the data server 174. Inalternative embodiments, the data server 174 may accept lists ofrequested data (particularly lists of changed requests) from the mobileserver 178 at any time. Such embodiments may be advantageous inasmuch asthe delay before data values are transmitted from the data server 174 tothe mobile server 178 is reduced.

At block 227, the data server 174 receives a stream of process data fromthe process control system via the process control network 162. Theprocess data may be received from one or more data sources within theprocess control system, including one or more of the following:controllers 40 via communicator interface 170, from process database 58,or otherwise communicated via the process plant network 10. In someembodiments, the data server 174 may subscribe to one or more datasources by communicating a request for particular data from the datasource. Such subscription requested may be further generated based uponlists of requested data from the mobile server 178. In furtherembodiments, the data server 174 may further obtain additional datarequested by the mobile server 178 from a data historian 62, knowledgerepository 64, or specialized server 186.

At block 228, the data server 174 identifies data values in the receiveddata to be further transmitted to the mobile server 178. The data server174 may identify process data values in the data stream that correspondto the data requested in the list of requested data from the mobileserver 178. At block 229, the data server 174 then transmits theidentified data values to the mobile server 178 via the remote accessnetwork 164. To reduce network traffic on the remote access network 164,the data server 174 may only transmit updated or changed data valuesassociated with the requested process data. For example, unchanged datavalues may not be transmitted or may be transmitted only as an indicatorof an unchanged value. In alternative embodiments, the data server 174may transmit the data values in real-time as they are received from theprocess control system, or the data server 174 may transmit the datavalues in groups at intervals. When transmitted in real-time, the datavalues may be transmitted as data streams from the data server 174 tothe mobile server 178. When transmitted at intervals, the data server174 may group data values received from the process control system atvarious times during the interval, which may be a fixed period or avariable interval. For example, the data server 174 may transmit datavalues to the mobile server 178 at a fixed period (e.g., every second),unless a requisite quantity of data (e.g., 5 MB) is received from theprocess control system prior to the periodic transmission.

At block 230, the mobile server 178 similarly identifies and transmitssubsets of the received data values to the remote computing devices viathe mobile network. The mobile server 178 may select the subsets basedupon the entries in the view lists indicated by the remote computingdevices. In alternative embodiments, the mobile server 178 may transmitthe subsets of data values in real-time as they are received from thedata server 174, or the mobile server 178 may transmit the data valuesin groups at intervals. For example, the data values may be grouped andtransmitted periodically (e.g., every second) to reduce the number oftransmissions via a mobile telephony network. In further embodiments,the mobile server 178 may communicate the data values in real-time, butthird-party networks (e.g., mobile telephony networks) may communicatethe data values in groups on a periodic transmission schedule. Oncereceived by the mobile computing devices, however, at least some of thedata values of the subsets are presented to users at block 231. Suchpresentation may include presentation as an notification, chart, icon,or other summary presentation based upon part of a data value.

FIG. 2D illustrates an example data subscription communication sequenceshowing communication between the process control system (specifically,a file interface 172 and a communicator interface 170), the data server174, the mobile server 178, and a remote computing device (specifically,a mobile device 14). Although the connections are shown as being directin order to better illustrate the salient features of the sequence, itshould be understood that intervening components may be involved. Forexample, the controller 40 may communicate configuration data to thedata server 174 via a file interface 172 and may further communicateprocess data to the data server 174 via a communicator interface 170.While described variously throughout the specification as the beingcommunicated from the controller 40 to the data server 174, it should beunderstood that, at least in some embodiments, the configuration data 74are stored in the configuration database 60, and communicated from theconfiguration database 60 to the data server 174 via the file interface172. That is, the file interface 172 may retrieve the configuration data74 from the configuration database 60 (or from the controller 40) andcommunicate the configuration data 74 to the data server 174. In anyevent, the communicator interface 170, the file interface 172, and thedata server 174 communicate via the via the process control network 162.The data server 174 and the mobile server 178 communicate via the remoteaccess network 164. The mobile server 178 and the mobile device 14communicate via the mobile network, which may include a local network atthe process plant (e.g., a part of the remote access network 164), anotification service 196, or the Internet 180. Although the examplesequence only illustrates one of each of the file interface 172, dataserver 174, mobile server 178, and mobile device 14 for clarity, furtherembodiments my include a plurality of any or all of these components.

The exemplary communication sequence begins with the communication of aconfiguration file 74 from the file interface 172 to the data server 174(line 232). Upon receiving the configuration file 74, the data server174 determines and sends configuration data to the mobile server 178(line 233), which may be a portion of the information included in theconfiguration file 74. The mobile server 178 then provides theconfiguration data or a portion thereof to the mobile device 14 (line234). When a data request is received from a user or otherwisedetermined at the mobile device 14, the mobile device 14 send a viewlist indicator to the mobile server 178 (line 235). In the illustratedembodiment, the mobile server 178 receives the view list indicator andwaits for a polling request from the data server 174. After an intervalof time, the data server 174 sends a polling request to the mobileserver 178 (line 236). In response to receiving the polling request, themobile server sends a requested data list or indication thereof to thedata server 174 (line 237). As illustrated, the polling request may besent by the data server 174 periodically or at intervals (lines 236), inresponse to each of which the requested data list or updated thereto maybe returned by the mobile server 178.

The data server 174 receives process data associated with the controller40 from the communicator interface 170 at various times (lines 238),which may be periodic with one or more periods or may be aperiodic(e.g., episodic). As illustrated by the lines 238, the process data maybe received even without a specific data request in some embodiments.When process data is received at the data server 174, the data server174 may determine whether the received process data values correspond toany requested data in the requested data list. When such requested datais identified, the data server 174 sends the requested data to themobile server 178 (line 239). Upon receiving the requested data, themobile server 178 may select data values corresponding to the view listdata requested by the mobile device 14. The mobile server 178 then sendsthe requested view list data to the mobile device 14 (line 240). Thissequence of communicating process data values from the communicatorinterface 170 to the data server 174 (line 238), from the data server174 to the mobile server 178 (line 239), and from the mobile server 178to the mobile device 14 (line 240) may repeat during process plantoperation until the mobile device 14 terminates the data subscription.The data subscription may be terminated by communicating an indicator ofthe termination or a new view list indicator not requesting any processdata.

FIG. 2E illustrates an example data server communication method 250 forproviding process data from the data server 174 to the mobile server178. The data server communication method 250 (or parts thereof) may beimplemented repeatedly by the data server 174 to provide data streams orotherwise provide process data values from the process control system tothe mobile server 178, and the method 250 may be implemented inconjunction with one or more of the other methods described herein.Although the method 250 is described as receiving and communicatingprocess data, the data server 174 may also obtain and transmitadditional data relating to the process plant to the mobile server 178in some embodiments.

At block 251, the data server 174 receives configuration data from theprocess control system via the process control network 162. Thisconfiguration data may be received as one or more configuration files 74from controllers 40, file interfaces 172, or configuration databases 60,as discussed elsewhere herein. After receiving the configuration data,the data server 174 may further communicate the configuration data tothe mobile server 178 at block 252. To communicate the configurationdata, the data server 174 may determine a subset of changed or updatedconfiguration data or may otherwise determine a subset of configurationdata to send to the mobile device 178. In further embodiments, the dataserver 174 may generate configuration information to send to the mobileserver 178, such as by deriving summary or hierarchical list informationfrom the configuration data received from the process control system.

At block 253, the data server 174 transmits a polling request to themobile server 178 via the remote access network 164. The polling requestmay instruct the mobile server 178 to respond by communicating arequested data list to the data server 174. In response to the pollingrequest, the mobile server 178 may send a list of requested data to thedata server 174 via the remote access network 164. The list of requesteddata may include a plurality of requested data parameters, indicatingentities or parameters from the process control system for which themobile server 178 is requesting data. In some embodiments, the list mayfurther include indications of additional data associated with theprocess control system. In further embodiments, the list may includeonly entries for new, revised, changed, cancelled, or updated requesteddata parameters.

At block 254, the data server 174 receives the list of requested datafrom the mobile server 178 via the remote access network 164. The dataserver 174 may then obtain process data values associated with the listof requested data, and (where applicable) the data server 174 mayfurther obtain additional data if indicated in the list of requesteddata. In some embodiments, the data server 174 may then subscribe toreceive process data from one or more controllers 40 or communicatorinterfaces 170. At block 255, the data server 174 receives a pluralityof process data values via the process control network 162, whichprocess data values are associated with a plurality of entities withinthe process plant. The process data values may include control values,measurement values, or other parameter values generated or used withinthe process control system. In preferred embodiments, the process datavalues may be received as one or more data streams from the processcontrol system in real-time as the process data values are generated orupdated.

When the data server 174 receives the process data values, the dataserver 174 next identifies a subset of the process data valuescorresponding to the requested data parameters of the received list ofrequested data to transmit to the mobile server 178 at block 256.Identifying the subset of the process data values may includeidentifying those process data values which have changed or updated, orwhich process data values are associated with process data newlyrequested by the mobile server 178. Similarly, in some embodiments, theidentified subset may include indicators of updated but unchangedprocess data values. Thus, the subset of process data values may beidentified for efficient communication to the mobile server 178. Oncethe subset of process data values has been identified, the data server174 communicates the subset of process data values to the mobile server178 at block 257. In preferred embodiments, the identification andcommunication of the subset of process data values may be performed inreal-time as the process data values are received by the data server174. Thus, the data server 174 may provide a streaming process datasubscription to the mobile server.

FIG. 2F illustrates an example data server communication sequenceshowing communication between the process control system (specifically,a file interface 172 and a communicator interface 170), the data server174, the mobile server 178, and a remote computing device (specifically,a mobile device 14). The example data server communication sequenceparticularly focuses on communication involving the data server 174.Although the connections are shown as being direct in order to betterillustrate the salient features of the sequence, it should be understoodthat intervening components may be involved. For example, the controller40 may communicate configuration data to the data server 174 via a fileinterface 172 and may further communicate process data to the dataserver 174 via a communicator interface 170. The controller 40 and thedata server 174 communicate via the via the process control network 162.The data server 174 and the mobile server 178 communicate via the remoteaccess network 164. The mobile server 178 and the mobile device 14communicate via the mobile network, which may include a local network atthe process plant (e.g., a part of the remote access network 164), anotification service 196, or the Internet 180. Although the examplesequence only illustrates one of each of the file interface 172,communicator interface 170, data server 174, mobile server 178, andmobile device 14 for clarity, further embodiments my include a pluralityof any or all of these components.

The exemplary communication sequence begins with the communication of aconfiguration data request from the data server 174 to the fileinterface 172 (line 258). The file interface 172 may obtain theconfiguration data from a configuration database 60. In response to theconfiguration data request, the file interface 172 sends theconfiguration data to the data server 174 (line 259), which may be sentas a configuration file 74 or otherwise. The data server 174 receivesthe configuration data, which may then be processed to determine furtherconfiguration data (e.g., a subset of the received configuration data, aset of lists based upon the configuration data, etc.) to communicate tothe mobile server 178. The data server 174 sends the configuration dataor information associated therewith to the mobile server 178 (line 260).At some point thereafter, the data server 174 transmits a pollingrequest to the mobile server 178 (line 261). In response to the pollingrequest, the mobile server 178 generates and communicates to the dataserver 174 a requested data list (line 262). The requested data list mayinclude entries indicating process data requested from the processcontrol system requested by the remote computing devices, as discussedelsewhere herein.

Based upon the requested data list, the data server 174 may in someembodiments send a process data request to communicator interface 170(line 263). The communicator interface 170 may obtain process data fromone or more controllers 40 in the process control system. Regardless ofwhether the embodiment involves a process data request, the data server174 receives process data from the communicator interface 170 (line264). Upon receiving the process data, the data server 174 selectsprocess data associated with the requested data list for communicationto the mobile server 174 (line 265). Selecting the process data mayinclude identifying one or more sets or subsets of process data values,which may be identified as including updated or changed process datavalues in some embodiments. The data server 174 then communicates theselected process data to the mobile server 178 (line 266). The mobileserver 178 may then further communicate the selected process data (or asubset thereof) to the mobile device 14, as described elsewhere herein.

FIG. 2G illustrates an example mobile server communication method 270for selecting, obtaining, and communicating process data to one or moreremote computing devices. The mobile server communication method 270 (orparts thereof) may be implemented repeatedly by the mobile server 178 toprovide data streams or otherwise provide process data values from theprocess control system to the remote computing devices, and the method270 may be implemented in conjunction with one or more of the othermethods described herein. Although the method 270 is described asreceiving and communicating process data, the mobile server 178 may alsoobtain and transmit additional data relating to the process plant to theremote computing devices in some embodiments.

At block 271, the mobile server 178 receives configuration dataassociated with the process control system form the data server 174 viathe remote access network 164. The configuration data may include one ormore configuration files 74, information associated with such files, orother information describing available process data within the processcontrol system. In some embodiments, the mobile server 178 may store arepresentation of a configuration of the process control system (orportion thereof) within a memory of the mobile server 178 to improve thespeed of searches by remote computing devices. The data server 174 maythen provide only updates or changes to the configuration data, whichthe mobile server 178 may use to modify the stored representation of theconfiguration of the process control system. In some embodiments, atblock 272, the mobile server 178 may communicate some or all of theconfiguration data to one or more remote computing devices via themobile network. For example, the mobile server 178 may provide lists ofentities, parameters, or related information responsive to a request fora list of available process data or in response to a user query, asdescribed elsewhere herein.

At block 273, the mobile server 178 receives an indication of a viewlist from at least one remote computing device via the mobile network.The indication may specify process data in the view list by data sourceor parameter, such as by specifying an area, processing unit, or processparameter within the process control system. The indication mayalternatively specify a predetermined view list stored in the memory ofthe mobile server 178, which may include entries associated withentities or parameters within the process control system. The mobileserver 178 may receive a plurality of such view lists from a pluralityof remote computing device, in which case the mobile server 178 mayfurther generate a combined list of requested data in some embodiments.The mobile server 178 may further generate a list of requested changesincluding only indications of changes in the process data requested. Themobile server 178 may continue to receive indications of view lists fromremote computing devices and may update the lists until a pollingrequest is received from the data server 174.

At block 274, the mobile server 178 receives a polling request from thedata server 174 via the remote access network 164. In response toreceiving the polling request, at block 275, the mobile server 178determines a list of requested data based upon the received one or moreindications of view lists from the remote computing devices. The mobileserver may identify process data requested by the remote computingdevices based upon indications of predetermined lists. In someembodiments, the mobile server 178 may further generate a combined listof requested data from a plurality of remote computing devices. Themobile server 178 may further generate a list of requested changesincluding only indications of changes in the process data requested. Inyet further embodiments, the mobile server 178 may identified relatedprocess data that is related to requested data based upon context butnot expressly requested by the remote computing devices. The list ofrequested process data may include an indication of such related processdata in order to further obtain process data likely to be requested bythe users of the remote computing devices. At block 276, the mobileserver 178 then transmits the determined list of requested process datato the data server 174 via the remote access network 164. Thetransmitted list of requested process data may be any of the foregoinglists or other similar lists as described herein.

At block 277, the mobile server 178 receives a plurality of process datavalues from the data server 174 via the remote access network 164. Theprocess data values may include data generated by entities within theprocess control system and communicated to the data server 174 via theprocess control network 162. In some embodiments, the plurality ofprocess data values may include data requested by a plurality of remotecomputing devices. Therefore, the mobile server 178 identifies a set ofprocess data values from the received plurality of process data valuesthat correspond to the data associated with a particular view list atblock 278. The mobile server 178 may identify a plurality of such setsof process data values, each associated with a view list indicated byone or more of the remote computing devices. Each set of process datavalues includes data values directly or indirectly requested by a remotecomputing device based upon the indication of the view lists receivedfrom the remote computing device. Once the set of process data values isidentified, the mobile server 178 communicates the set of process datavalues to the corresponding one or more remote computing devices via themobile network at block 279. This may include communicating via anotification service 196, which may be configured to push notificationsto remote computing devices.

FIG. 2H illustrates an example mobile server communication sequenceshowing communication between the process control system (specifically,a file interface 172 and a communicator interface 170), the data server174, the mobile server 178, and a remote computing device (specifically,a mobile device 14). The example mobile server communication sequenceparticularly focuses on communication involving the mobile server 178.Although the connections are shown as being direct in order to betterillustrate the salient features of the sequence, it should be understoodthat intervening components may be involved. For example, the fileinterface 172 may communicate configuration data to the data server 174and a communicator interface 170 may further communicate process data tothe data server 174. The controller 40 and the data server 174communicate via the via the process control network 162. The data server174 and the mobile server 178 communicate via the remote access network164. The mobile server 178 and the mobile device 14 communicate via themobile network, which may include a local network at the process plant(e.g., a part of the remote access network 164), a notification service196, or the Internet 180. Although the example sequence only illustratesone of each of the file interface 172, communicator interface 170, dataserver 174, mobile server 178, and mobile device 14 for clarity, furtherembodiments my include a plurality of any or all of these components.

The exemplary communication sequence begins with the communication ofconfiguration data from the data server 174 to the mobile server 178(line 280). In some embodiments, the mobile server 178 may furthercommunicate the configuration data (or a portion thereof) to the mobiledevice 14 (line 281). The mobile device 14 then communicates a view listindication to the mobile server 178 (line 282), which may includeentries associated with entities or parameters within the processcontrol system or may indicate a predetermined list stored at the mobileserver 178. The mobile server 178 may then wait for a polling requestfrom the data server 174. The mobile server 178 receives the pollingrequest from the data server 174 (line 283), which may be transmittedfrom the data server 174 periodically. In response to the pollingrequest, the mobile server 178 determines a list of requested data basedat least in part upon the view list indication received from the mobiledevice 14 (line 284). In some embodiments, determining the list ofrequested data may include determining view list entries, combining viewlist entries for a plurality of remote computing device, and determiningchanged or updated view list entries to request. When the list ofrequested data is determined, the mobile server 178 sends the list ofrequested data to the data server 174 (line 285).

The data server 174 receives process data from the communicatorinterface 170 (line 286). At least part of the received process data isthen transmitted from the data server 174 to the mobile server 178 basedupon the list of requested data (line 287). Upon receiving the processdata from the data server 174, the mobile server 178 determines viewlist data (line 288), including process data values associated with theentities or parameters of the view list. Determining the view list datamay include selecting a set of view list data values from the receivedprocess data for each view list associated with one or more mobiledevices 14. The mobile server 178 then transmits the view list data tothe mobile device 14 (line 289).

FIG. 2I illustrates an example view list subscription sequence showingcommunication between various modules implemented by a mobile device 14and/or mobile server 178. With momentary reference to FIG. 2K, in anexemplary embodiment, the mobile server 178 may implement a watch listmodule 371, a mobile data services module 372, an application programinterface (API) 373, a runtime cache 374, and a user view listsubscriptions module 375. In an alternative embodiment, the watch listmodule 371 and mobile data services module 372 may run on the mobiledevice 14, while the runtime cache 374 and user view list subscriptionsmodule 375 may run on the mobile server 178, and the API 373 may besplit between both the mobile device 14 and the mobile server 178. Theview list subscription sequence shows selection of a view list,subscription to a data stream associated with the view list, anddisconnection from the data stream.

Selection of the view list begins with a user of the mobile device 14selecting a view list at the mobile device 14. An indication of theselection may be communicated to the watch list module 371 by the mobiledevice 14 (line 290). Because the indication of the view list selectionmay not fully specify the data associated with the view list, the viewlist module 371 communicates the indication of the view list selectionto the mobile data services 372 (line 291), which further communicatesthe indication of the view list selection to the API 373 (line 293). TheAPI 373 then accesses a database storing a definition of the selectedview list and reads a view list definition specifying the dataassociated with the view list (line 293). The view list definition isthen communicated back to the mobile data services module 372 (line294), which communicates the view list definition to the watch listmodule 371 (line 295). The watch list module 371 may provide the viewlist definition to the mobile device 14 or another module of the mobiledevice 14 to generate the user-selected watch list 296. Theuser-selected watch list 296 may be displayed to the user or the valuesstored for later use.

Subscription to a corresponding data stream begins, in response to theselection of the view list, with the API communicating a subscriptionrequest to the user view list subscriptions module 375 (line 297). Theuser view list subscriptions module 375 adds a subscription to processdata values from the process control system based upon the view listselection (line 298). Adding the subscription may include requestingprocess data values from the data server 174, as described elsewhereherein. Once the subscription is added, the user view list subscriptionsmodule 375 communicates a confirmation of the subscription to the API373 (line 299), and the user view list subscriptions module 375 beginscommunicating runtime values from the process control system to theruntime cache 374 (lines 300). The runtime values may be process datavalues associated with entities or parameters within the process controlsystem, as discussed elsewhere herein.

In the example view list subscription sequence, the watch list module371 updates the runtime values periodically (e.g., every second) orepisodically (e.g., when the user selects an option to view the specificdata). To obtain the runtime values, the watch list module 371 sends acurrent value request to the mobile data services module 372 (line 301),which is further communicated to the runtime cache 374 (line 303). Whenthe current value request is received at the runtime cache 374, therequested runtime values for the view list are collected (line 304) andcommunicated to the API 373 (line 305). The API 373 then communicatesthe runtime values for the view list to the mobile services module 372(line 306), which communicates the runtime values to the watch listmodule 371 (line 307). This sequence may be repeated whenever newruntime values are desired.

Disconnection from the data stream occurs when a stop updating requestis sent from the watch list module 371 to the mobile data servicesmodule 372 (line 308), which is further communicated to the API 373(line 309). The API 373 communicates the stop updating request to theuser view list subscriptions module 375 (line 310). Upon receipt of thestop updating request, the user view list subscriptions module 375 maystop obtaining runtime values (i.e., process data values) for the viewlist. The user view list subscriptions module 375 also sends a stopupdating confirmation message to the API 373 (line 311), whichcommunicates the stop updating confirmation message to the mobile dataservices module 372 (line 312), which further communicates the stopupdating confirmation message to the watch list module 371 (line 313).

FIG. 2J illustrates an example data server 174 in the process controlsystem. The data server 174 is communicatively connected to the server178 via the remote access network 164. Additionally, the data server 174is communicatively connected to a plurality of components within theprocess control system via the process control network 162. The processcontrol network 162 connects the data server 174 to controllers 40,communicator interfaces 170 associated with the controllers 40, aconfiguration database 60, file interfaces 172 that provideconfiguration data to the data server 174, and a data historian 62storing past process data associated with the process plant.

The data server 174 includes data services 176 to facilitatecommunication, which may include a plurality of specialized modules orroutines. The data services 176 may include a data scanner 314, aconfiguration module 315, and a data module 316. The configurationmodule 315 may communicate with the configuration database 60 or fileinterface 172 to obtain configuration data regarding the process controlsystem, such as configuration files 74. The data module 316 may requestand obtain data values from the data historian 62, controllers 40, orcommunicator interfaces 170. The data module 316 may also selectreceived data values for communication to the mobile server 178,according to the methods discussed elsewhere herein. The data scanner314 may passively receive streaming process data values from controllers40 or communicator interfaces 170 via process control network 162. Insome embodiments, the data scanner 314 may scan all process data beingcommunicated through the process control network 162, some of whichprocess data values may then be identified for communication to themobile server 178. Additional, alternative, or fewer elements may beincluded in other embodiments of the data server 174.

FIG. 2K illustrates an example mobile server 178 in the process controlsystem. The mobile server 178 is communicatively connected with themobile device 14 or web client 198 to provide process data to a remoteuser, which may include L1 Data. An application API 317 handlescommunication of data lists (e.g., alarm lists, watch lists, etc.) andrelated data values between the mobile server 178 and the remotecomputing device (i.e., the mobile device 14 or web client 198).Additionally, the mobile server 178 may include a notification module327 that communicates notifications to the mobile device 14 via anotification service 196, which may further send the notificationthrough third-party notification services 182, such as Google or Applenotification services. The application API 317 may further handle userauthentication and personalization, for which purpose the applicationAPI 317 may further communicate with a certificate server 318, as wellas various internal components of the mobile server 178. The internalcomponents related to authentication and personalization may include aconfiguration database 321 and a user customization module 322. Theconfiguration database 321 may further receive information from a usermodule 333, which may process configuration and personalization datareceived from a configuration unit 330 of an executive portal (expo)server 179 via a data connection 334.

In addition to authorization and personalization components, theapplication API 317 may communicate with a search database 319, alogging database 320, and a memory cache 323. The search database mayreceive configuration data from a search module 332 to facilitatesearching available process data within the process control system atthe level of L1 Data or summary data, as discussed elsewhere herein. Thesearch module 332 may receive configuration data from a configurationfile processing unit 331 of the expo server 179 via a data connection334. The logging database 320 may store usage metrics for off-lineanalysis. The memory cache 323 communicates with the application API 317and stream processing unit 325 to facilitate notifications and managestored lists 324.

The stream processing unit 325 receives process data values from theprocess control system via a runtime scanner 326 via a data connection334. The runtime scanner 326 further obtains process data values fromthe communicator interfaces 170 of a portal 171 within the processcontrol system via a data connection 334. The runtime scanner 326 mayidentify process data values based upon configuration data from theconfiguration database 321. Upon receiving the process data values, thestream processing unit 325 evaluates the received data values toidentify requested data values associated with parameters, entities,alarms, or notifications requested by a remote computing device. Theuser customization module 322 and configuration database 321 may provideinformation regarding data to be communicated to the remote computingdevices, which may be added to the memory cache 323. When the streamprocessing unit 325 determines that a notification should be sent, thenotification information may be sent to the notification module 327 tobe pushed to the mobile device 14 via the notification service 196.

The expo server 179 may include an expo database 328 storing informationregarding users, devices, licenses, and system-level information for theprocess control system. This may include configuration files 74, as wellas information regarding user authorizations to access process data. Theexpo database 328 may be configured by an expo configurator unit 329operating within the process control system. The expo database 328 thenprovides configuration and authorization data to the user module 333 viathe configuration unit 330 and to the search module via theconfiguration file processing unit 331, via data connections 334.Additional, alternative, or fewer elements may be included in otherembodiments of the mobile server 178. For example, the data server 174may be included between the mobile server 178 and both the expo server179 and the communicator interfaces 170.

FIG. 2L illustrates an example mobile server internal communicationarchitecture within the mobile server 178. The example architecturepresents an alternative view of the logical connections within themobile server 178. The mobile server 178 may include a mobile service339 and an expo server 338, which communicate via an asynchronouscommunication API, such as the Windows Communication Foundation (WCF)framework (developed by Microsoft Corp.) between a server-side scanner335 within the mobile service 339 and a client-side scanner 336 withinthe expo server 338. Within the expo server 338, the server-side scanner335 communicates with the expo communicator 337 to handle configurationfrom the expo database 328. Within the mobile service 339, theclient-side scanner 336 communicates received data to the watch listitems unit 324, which further communicates to the mobile service 190.The mobile service 190 further manages communication with the mobiledevices 14.

Notifications and Alarms

In addition to other process data, the systems and methods describedherein may be used to communicate alarms associated with the processplant to the users of remote computing devices. Because alarms arefrequently time-sensitive and may be urgent, the real-time datacommunication aspects of the systems and methods herein are ofparticular value for alarms. The alarms may be included as L1 Datagenerated by the process control system and may be included in theprocess control data values communicated to the mobile server 178 viathe data server 174. For example, an alarm may be a parameter defined inthe configuration data and may be included in the process dataassociated with an entity, such as a control module. Such alarms may beprocess parameters and may have alarm statuses as process parameter datavalues, which may be selected from a predefined set of alarm statuses(e.g., suppressed, disabled, acknowledged, active unacknowledged, activeacknowledged, and inactive unacknowledged). The alarm statuses may bebased upon other parameters within the process control system orotherwise indicative of conditions within the process plant, such as astate of a processed material within a portion of the process plant, anenvironmental condition within a portion of the process plant, or astatus of a device within the process plant (e.g., a field devices 44-46or equipment units). In some embodiments, the conditions associated withthe alarms may be monitored based upon process inputs or outputsassociated with the conditions, such as where the condition itself isnot directly measured within the process (e.g., due to physicalconstraints within the process plant).

As with other process data, the alarms may be selected for monitoring orsubscription as part of alarm lists selected by users of remotecomputing devices. The mobile server 178 may thus receive alarm statusesas part of the process data values transmitted from the data server 174.The mobile server 178 may further process the alarm statuses todetermine whether the user should be alerted. Alternatively, the alarmsmay be implemented by the mobile server 178 based upon associatedprocess data values from the process control system. For example, analarm may specify value ranges for one or more parameters associatedwith each of a plurality of alarm statuses. The mobile server 178 maythen subscribe to the associated one or more parameters and determinethe alarm statuses when the associated parameter values are receivedfrom the data server 174. Regardless of how generated, the alarms may bemonitored to determine when to alert users. When an alarm status meetsone or more criteria for transmission, the mobile server 178 maycommunicate a notification or alert to the corresponding remotecomputing device for presentation to a user. Such alerts ornotifications may be communicated through the mobile network like otherprocess data values, or the alerts or notifications may be transmittedvia a notification service 196 (which may further interface with otherservices, such as third-party notification services 182, such as Googleor Apple notification services). Thus, the alarm and notificationmethods and systems described herein may be implemented by or inconjunction with the other methods described elsewhere herein.

FIG. 2M illustrates an example alarm notification method 340 formonitoring a process control system and providing alarms to a remotecomputing device. The alarm notification method 340 may be implementedby the mobile server 178 to identify and transmit notifications or otheralerts associated with alarms. At block 341, the mobile server 178establishes subscriptions to alarms in a process control system for oneor more remote computing devices. As discussed elsewhere herein, suchsubscriptions may be established in response to selection of a data list(e.g., an alarm list or other list containing alarms as process dataentries) and a request for process data including the alarms to the dataserver 174 from the mobile server 178, which may be sent in response toa polling request. At block 342, the mobile server 178 receives processdata from the data server 174 via the remote access network 164. Suchprocess data may include a plurality of process data values, which maybe received as one or more streams of process data values transmitted inreal-time as they are generated within the process control system.

Upon receiving the process data, the mobile server 178 identifies analarm data value in the received process data at block 343. The alarmdata value may be an alarm status associated with a monitored conditionwithin the process plant. Alternatively, the alarm data value may beanother process data values associated with an alarm status. Based uponthe identified alarm data value, the mobile server 178 may determine anotification associated with the alarm status to communicate to a remotecomputing device.

At block 344, the mobile server 178 communicates the notification of thealarm data value to one or more remote computing devices. Thenotification may include the alarm status or may be an alternativenotification. In some embodiments, the notification may further includeadditional information related to the alarm, such as a recommendationregarding addressing a condition associated with the alarm, a time inwhich to address the condition, or a note regarding the condition. Suchadditional data may be obtained from a data historian 62 or knowledgerepository 64 via the data server 174, or the additional data may beobtained from an enterprise historian 188 by the mobile server 178. Thedata server 178 may communicate the notification (including anyadditional data) to one or more remote computing devices based upon viewdata lists associated with the remote computing devices, as discussedelsewhere herein. Communicating the notification may include sending thenotification through the mobile network, such as the Internet 180 or alocal network. A local network may be used, for example, to send thenotification to a mobile device 14 via the remote access network 164 bya Wi-Fi access point 12 a. In some embodiments, the notification may becommunicated via a notification service 196 to the remote computingdevices. The notification service 196 may push the notification to aremote computing device, regardless of whether an application associatedwith the process data (e.g., a special-purpose monitoring application ora web browser capable of receiving process data from the mobile server178) is running on the remote computing device at the time thenotification is communicated. Thus, the user may be alerted of the alarmeven when the user is not viewing process data. Upon receiving thenotification, the remote computing device presents an alertcorresponding to the notification to the user at block 345.

FIG. 2N illustrates an example alarm transmission sequence showingcommunication of an alert or notification from the mobile server 178 toa mobile device 14. In an exemplary embodiment, the mobile server 178may implement a runtime notification service 326, a notification filter325, and an application API 317. When a notification is identified bythe mobile server 178 for transmission to the mobile device 14, thenotification may be generated by or communicated to the runtimenotification service 326 of the mobile server 178. Alternatively, theruntime notification service 326 may identify the notifications to sendto the mobile server 14. In either case, the runtime notificationservice 326 sends the notification to the notification filter 325, whichmay further determine how the notification is to be transmitted to themobile device 14. The notification filter 325 then sends thenotification to the application API 317 for further transmission.

The application API 317 may communicate with a notification service 196(e.g., an Azure Notification Hub developed by Microsoft Corp.), whichmay be configured to further transmit notifications via third-partynotification services 182, such as Google or Apple notification servicesvia a notifications channel 346 to the mobile device 14. Upon receivingthe notification, the application API 317 sends the notification to thenotification service 196. The notification service 196 selects athird-party notification service 182 and sends the notification to theselected third-party notification service 182. The third-partynotification service 182 receives the notification and sends it to thenotifications channel 346, which communicates the notification to themobile device 14. The mobile device 14 may then present the notificationto the user. In some embodiments, the mobile device 14 may receive arequest to read pending notifications, which may include a selection ofa notification by the user. In response to such request, the mobiledevice 14 may provide additional information included with thenotification or separately received from the mobile server 178. Infurther embodiments, the mobile device 14 may implement a process dataapplication to obtain process data associated with the notification inresponse to receiving the request from the user.

FIG. 2O illustrates an example alarm notification architecture, showingcommunication of notifications associated with alarms to a mobile device14. The example architecture shows the main components involved incommunicating data between the mobile device 14 and the mobile server178. The mobile server 178 includes a notification module 327 that sendsnotifications (e.g., alerts associated with alarms) to the mobile device14, but the notification module 327 does not receive communications backfrom the mobile device 14. The notification module 327 receivesnotifications to be sent to the mobile device 14 or determines suchnotifications based upon process data received by the mobile server 178.Upon identifying a notification, the notification module 327 may sendthe notification to the notification service 196 via the Internet 180.The notification service 196 may then send the notification to thethird-party notification service 182, which may be a cloud-based servicesuch as the iCloud by Apple Inc. The third-party notification service182 may then push the notification to the mobile device 14 forpresentation to the user.

The application API 317 of the mobile server 178 both sends and receivesdata. As discussed above, the application API 317 may send configurationdata and requested process data values to the mobile device 14 via themobile network, such as the Internet 180. The application API 317 alsoreceives communication from the mobile device 14 via the mobile network,such as queries, requests for configuration data, or selections ofprocess data (e.g., watch lists, alarm lists, etc.). The application API317 may thus provide an interface between the mobile device 14 and themobile server 178 for ordinary communication, while the notificationmodule 327 pushes notifications of particularly time-sensitiveinformation (e.g., alerts associated with alarms). The mobile device 14may implement various software applications, modules, or routines toreceive and send data, as well as to present data to a user via a GUI.For example, the mobile device 14 may include mobile and data servicesfor handling communication via the mobile network (and, in someembodiments, to receive notifications). The mobile and data services maystore and retrieve data from a local memory of the mobile device 14, aswell as providing data for population in view models. The view modelsmay combine views selected or created by a user with process data valuesreceived from the mobile server 178 or a local memory to present useableinformation regarding the process plant to the user. The view models mayfurther communicate data to the mobile and data services for storage orfor communication to the mobile server 178 to indicate a request forconfiguration data or process data from the process control system, asdescribed elsewhere herein.

FIG. 2P illustrates an example alarm response method 350 for providingnotifications and additional data regarding alarms within a processcontrol system to a remote computing device, such as a mobile device 14.The method 350 may be implemented by the mobile server 178 to identifyand transmit notifications or other alerts associated with alarms,receive requests for further information associated with such alarms,and provide additional data associated with the alarms. At block 351,the mobile server 178 may receive a plurality of process data valuesfrom the data server 174 via the remote access network 164, as describedelsewhere herein. Upon receiving the process data from the mobile server174, the mobile server 178 may identify data associated with alarmswithin the process control system. Identifying the alarms may includeidentifying alarm statuses in the plurality of process data valuesreceived from the data server 174, or identifying the alarms may includedetermining alarm statuses from parameter values within the plurality ofprocess data values at the mobile server 178. The mobile server 178 maythen generate or select a notification to transmit to the remotecomputing device, which may include an alarm status.

At block 352, the mobile server 178 communicates the notificationassociated with the identified alarm to the remote computing device. Thenotification may be communicated via a notification module 327 of themobile server 178 to a notification service 196 for furthercommunication to a mobile device 14 via a third-party notificationservice 182. Following receipt of the notification, the remote computingdevice may present the notification to the user and may receive a userrequest for additional data relating to the notification. The requestfor additional data may specify particular data associated with thealarm or a condition within the process plant associated with the alarm.For example, the user may select further detailed information from alist of available related information by selecting a representation ofthe notification. Alternatively, the request for additional data maysimply request additional data that is available within the processcontrol system and that is associated with the condition associated withthe alarm.

At block 353, the mobile server 178 receives the request for theadditional data associated with the condition from the remote computingdevices. Such request for additional data may be received from theremote computing device to the mobile server 178 via the mobile networkand received by as application API 317 of the mobile server 178. Forexample, a mobile device 14 may send a message including the request foradditional data to the application API 317 of the mobile server 178 viathe Internet 180. After the mobile server 178 receives the request foradditional data, at block 354, the mobile server 178 may identifyadditional data associated with the condition to be sent to the remotecomputing device. The mobile server 178 may identify the additional datafrom an indication specifying the additional data included in therequest. Additionally, or alternatively, the mobile server 178 mayidentify the additional data based upon configuration data previouslyreceived from the data server 174, such as by identifying areas, processunits, equipment units, control modules, or parameters associated withthe alarm (or an input parameter of the alarm). For example, processdata regarding an equipment unit associated with a parameter value thattriggered the alarm may be identified as additional data relevant to therequest. In further embodiments, the mobile server 178 may identify dataregarding the alarm or equipment that may be relevant to the conditionin the process plant, such as recommendations or notes associated withthe condition or entities within the process control system associatedwith the condition. If available at the mobile server 178, theidentified additional data may be sent to the remote computing device.If part or all of the identified additional data is not available at themobile server 178, the mobile server 178 may obtain the additional data.Obtaining the additional data may include requesting process data valuesassociated with the additional data from the data server 174. Obtainingthe additional data values may further include obtaining the additionaldata values from a data historian 62 or a knowledge repository 64. Oncethe mobile server 178 has the identified additional data, the mobileserver 178 may communicate the identified additional data to the remotecomputing device via the mobile network. This may include sending one ormore messages including the additional data values from the applicationAPI 327 to the mobile device 14 via the Internet 180. The remotecomputing device may then present the additional data values to the useror store the additional data values for later presentation.

Web Browser Implementation

Although the disclosure herein generally exemplifies remote computingdevices as mobile devices 14, it should be understood that other remotecomputing devices (e.g., web clients 198, such as web browsers orapplications therein) may use the disclosed systems and methods toaccess process data via the Internet 180 or other unsecured networks. Insome embodiment, such remote computing devices may also communicate withthe mobile server 178 via one or more secured networks. The processesdescribed herein may nonetheless be used as a further security measure.An example web client implementation that may operate on a mobile deviceor a stationary computer connected to the mobile server 178 via anunsecure network is illustrated in FIG. 2Q.

FIG. 2Q illustrates an example web client implementation for receivingprocess data at a web client 198 from a mobile server 178. The examplediagram illustrates communication between components of the web client198 and the mobile server 178. The mobile server 178 may include amobile service 190 to control communication with remote computingdevices, as discussed above. In web client implementations, the mobileservice 190 may communicate with an application API 317 within themobile server 178. The application API 317 may send and receiveinformation from the mobile service 190 by one or more applicationservices 356 of the application API 317. The application API 317 maythen use view controllers 357, web services 358, or WebSockets 359. Theview controllers 357 and web services 358 may provide data to the webclient 198, while the WebSockets 359 may both send and receive data toand from the web client 359. The view controller 357 may transmit staticfiles defining the contours of a view to be displayed by a GUI of theweb client 198 (e.g., HTML pages, CSS files, or JavaScript). The webservices 358 may transmit process data values to the web client 198 tobe used with the static files. The web services 348 may berepresentational state transfer (REST) web services, and may transmitthe data values efficiently using JavaScript Object Notation (JSON). TheWebSockets 359 may also use JSON for communication between the mobileserver 178 and the web client 198. Although not illustrated, theapplication API 317 may communicate with the web client 198 via theInternet 180 or other communication network.

The web client may include a data client unit 360, which communicateswith the mobile server 178 via a data services module 361. The dataservices module 361 may receive the static files, data values, and anyother data from the view controllers 357, web services 358, orWebSockets 359 of mobile server 178. The data services module 361 mayalso communicate data to the WebSockets 359. The data services 361 maycommunicate within the data client unit 360 to generate or provide datato GUIs of the remote computing device. To present the data to the user,the data client unit 360 may bind components 364 with templates 365based upon directives 366, including directive from the user. Classes362 and interfaces 363 may be used in communication between the dataservices 361 that receive the data as provided by the mobile server 178and the components 364 of the user interface. The illustrate web clientimplementation is exemplary only, and additional, alternative, or fewerelements may be included in other embodiments of web clientimplementations.

GUI Generation

As described above, an application executing on a mobile computingdevice is used to enable users to remotely view process data and alarmsof a process control system. In particular, the application isconfigured to present various Graphical User Interfaces (GUIs)representative of the process data and/or alarms generated by theprocess control system. FIG. 3A illustrates a signal diagram detailingthe interactions between the mobile server 178, the mobile computingdevice 14, an application 16 executing on the mobile computing device14, and a GUI 18 presented on a display of the mobile computing device14. Generally speaking, the application 16 and the mobile computingdevice 14 interact via one or more APIs of the mobile computing device14 to generate and display the GUI 18. In addition to the APIs of themobile computing device 14, the mobile server 178 may also include oneor more APIs to control communications between the mobile server 178 andthe mobile computing device 14, as well as to control access to theprocess data and/or alarms generated by the process control system.

In an aspect, the process illustrated in the signal diagram begins whena user interacts with the GUI 18 to log into (602) the application 16.As is generally known, the login process includes the user providing auser name and password. In one embodiment, the application 16 is abrowser application executing on the mobile computing device 14. In thisembodiment, the user may log into a web portal that facilitates thefunctionality described herein. In another embodiment, the application16 is an application dedicated to interfacing with process controlsystems. In this embodiment, the login process may occur when the userlaunches the dedicated application. The application 16 receives thelogin information and generates an authentication request in accordancewith an API of the mobile server 178. The authentication request mayinclude an indication of an identity of the user and/or an indication ofan identity of the mobile computing device 14. Next, the application 16forwards (604) the authentication request to the mobile computing device14 for transmission (606) to the mobile server 178 via a communicationnetwork. In the illustrated process, the mobile server 178 processes theauthentication request and authorizes (608) the user to access processdata and/or alarms generated by the process control system. In anembodiment, the access is limited to a set of process data and/or alarmsspecifically permitted in a user profile corresponding to the user. Insome embodiments, the user may be authorized to access process dataand/or alarms from a plurality of different process control systems.After granting access, the mobile server 178 transmits (610), to themobile computing device 14, an acknowledgement that the user wassuccessfully authenticated. The mobile computing device 14 then informs(612) the application 16 that the user was successfully authenticated.

After the user is authenticated to access the process data and/or alarmsgenerated by the process control system, the user interacts with the GUI18 to select (614) a view list of process data and/or alarms. The viewlist may be an alarm list, a watch list, a batch list, or a list oflists (i.e., a list of alarm lists, watch lists, batch lists, and/orother lists). For example, upon logging into the application 16, theapplication 16 may generate an interface that presents a plurality ofview lists to which the user has access. In this example, the selectionmay be a click, a tap, or other user interaction with the GUI 18 thatindicates a particular view list from the plurality of view lists. Ofcourse, the GUI 18 may be configured to detect the selection throughother known user interface techniques, including the use of verbalcommands and/or gestures. Next, the application 16 generates a requestfor data corresponding to the selected view list. In an aspect, theapplication 16 formats the request for data to include an indication ofthe view list, in accordance with an API of the mobile server 178. Theapplication 16 then forwards (616) the request for data to the mobilecomputing device 14 for transmission (618) to the mobile server 178 viathe communication network.

According to aspects described elsewhere herein, when the mobile server178 receives the request for data, the mobile server 178 queries a viewlist database (not depicted) to determine a plurality of parametersincluded in the indicated view list. In an embodiment, the mobile server178 also determines a plurality of parameters associated with each itemwithin the indicated view list. For example, if the indicated view listis an alarm list, the mobile server 178 determines a plurality ofparameters associated with each alarm item within the alarm list. Asanother example, if the indicated view list is a list of lists, themobile server 178 determines a plurality of parameters associated witheach list within the list of lists (and a plurality of parametersassociated with the items therein).

The plurality of parameters are divided into two generalclassifications: runtime parameters and non-runtime parameters. Runtimeparameters include parameters that are generated by the field devices 44and/or the control modules 70 indicative of a current state ofoperation. To this end, the runtime parameters may represent a “realtime” or current view at status of the field devices 44 and/or thecontrol modules 70. As an example, the runtime parameters may include aprocess value, a limit value, an output value, or an alarm record. Onthe other hand, non-runtime parameters tend to represent generallystatic characteristics of the field devices 44 and/or the controlmodules 70. As an example, the non-runtime parameters may include a nameof a field device or control module, a tag of a field device or controlmodule, a role of an item, a unit associated with a runtime parameter,and so on. It should be appreciated that although the non-runtimeparameters are generally static, the non-runtime parameters may stillchange from time to time (e.g., when a new field device is added to theprocess control system).

Based on these different characteristics of runtime and non-runtimeparameters, the mobile server 178 processes the request to retrieve datadifferently for runtime and non-runtime parameters. To this end, themobile server 178 queries (622) configuration data (e.g., a FHX file) toretrieve the non-runtime parameters. The mobile server 178 thentransmits (626) the retrieved non-runtime parameters to the mobilecomputing device 14. Conversely, for the runtime parameters, the mobileserver 178 may subscribe (620) the mobile computing device 14 to astream of data that includes the parameters. In an embodiment, tosubscribe the mobile computing device to the stream of data, the mobileserver 178 follows the steps of the data subscription method 220illustrated in FIG. 2C. It should be appreciated that because the streamof data may, in some embodiments, be hierarchically organized, thestream of data may also include a reference to several non-runtimeparameters (e.g., a name or tag of control module or field device). Asanother example, some view lists may include a graphical representationof a historic trend for a parameter. In this example, the stream of datamay include a plurality of historical values (e.g., a valuecorresponding to every minute for the last 12 hours) for the parameter.Unlike the runtime parameters, these historical values are retrievedfrom a data historian (not depicted) interconnected with the mobileserver 178. After the mobile computing device 14 is subscribed to thestream of data, the mobile server 178 may periodically transmit (628)the stream of data to the mobile computing device 14. In someembodiments, the stream of data may actually be an aggregated stream ofdata including a plurality of different streams of data from a pluralityof different process control systems.

Additionally, according to aspects, the application 16 retrieves (624) atemplate (e.g., a view model) within a template database (not depicted)corresponding to the selected view list. The template includes locationson the GUI 18 where parameter values of the view list are displayed. Asan example, if the template includes a title bar, the template mayindicate a location on the title bar for a friendlyName parameter forthe selected view list. In one scenario, the template is a defaulttemplate for view lists of a particular type. In another scenario, thetemplate for the selected view list may be a customized template. Forexample, the user may customize whether the GUI 18 corresponding to theselected view list includes a visualization of various parameters. Tothis end, the user may be able to customize which parameters (e.g.,process values, set points, limits, and so on) are displayed in a graphpresented on the GUI 18, whether the graph includes a scale, whether thegraph includes a line chart or a bar chart, or even whether a graph isdisplayed on the GUI 18 at all.

After the mobile computing device 14 receives the retrieved non-runtimeparameters and a stream of data including runtime parameters, the mobilecomputing device 14 provides the received data to the application 16.The application 16 then populates (632) the retrieved template with thedata provided by the mobile computing device 14. To this end, theparameters included in the template and the parameters provided by themobile computing device 14 may correspond to one another (e.g., bothparameters have the same name). Next, the application 16 generates a setof instructions that causes the mobile computing device 14 to display(634) the populated template on the GUI 18. In an aspect, the set ofinstructions is formatted in accordance with an API of the mobilecomputing device. For example, an operating system of the mobilecomputing device 14 may include a plurality of APIs related topresenting a GUI on a display of the mobile computing device 14.

In an aspect, as described above, the mobile server 178 may transmit tothe mobile computing device 14 parameters associated with each itemwithin the selected view list. However, the template for the selectedview list may not include a location for each parameter associated witheach item therein. Accordingly, the parameters not included in thetemplate are not displayed on the GUI 18. That said, the user may becapable of interacting with the GUI 18 to view another view list thatcorresponds to the item within the selected view list. To improve thespeed at which a template corresponding to the other view list may bepopulated, the application 16 may cache the data provided by the mobilecomputing device. As a result, the template corresponding to the otherview list may be populated without further communication between themobile computing device 14 and the mobile server 178.

Further, as described above, when the mobile computing device 14 issubscribed to the stream of data, the mobile server 178 periodicallytransmits (636) data to the mobile computing device 14. The mobilecomputing device 14 then provides (638) the received data to theapplication 16. In some scenarios, the stream of data may includeupdated data values for one or more of the parameters included in theview list displayed on the GUI 18. Accordingly, the application 16updates (640) the template to include the updated data values includedin the stream of data. Next, the application 16 generates a set ofinstructions that causes the mobile computing device 14 to display (642)the updated template on the GUI 18.

At some point in time, the user may navigate away from the GUI 18 and/orotherwise interact with the mobile computing device 14 such that theapplication 16 no longer presents the GUI 18. In one scenario, the userhas logged out of the application 16. Accordingly, the application 16may detect the log out event and generate an unsubscribe message. Theapplication 16 then forwards the unsubscribe message to the mobilecomputing device 14 for transmission to the mobile server 178. Inresponse, the mobile server 178 unsubscribes the mobile computing device14 from the stream of data. In another scenario, the user may select anew view list to display on the GUI 18. Accordingly, the application 16may a selection of the new view list. The application 16 then generatesan unsubscribe message for the current view list and also a request toreceive data corresponding to the new view list. Next, the application16 forwards the unsubscribe message and the request to receive data tothe mobile computing device 14 for transmission to the mobile server178. In response, the mobile server 178 unsubscribes the mobilecomputing device 14 and modifies the stream of data to reflectparameters corresponding to the new view list.

Turning now to FIGS. 3B-3H, illustrated are example GUIs correspondingto different view list types: FIGS. 3B and 3C illustrate a GUIcorresponding to a list of lists view list; FIG. 3D illustrate a GUIcorresponding to a watch list view list; FIGS. 3E and 3F illustrate aGUI corresponding to a watch list item view list; FIG. 3G illustrates aGUI corresponding to an alarm list view list; and FIG. 3H illustrates aGUI corresponding to an alarm item view list. Each of the illustratedGUIs may be presented by the GUI 18 within the application 16 executingon the mobile computing device 14. As described above, the arrangementof the various GUI elements is governed by a template (e.g., a viewmodel) corresponding to the particular view list. The template mayinclude a location on the GUI 18 where a plurality of parameter valuesare to be displayed. To populate the template, the application 16 may beconfigured to generally follow the process described in the signaldiagram 600. In particular, the interfaces illustrated in FIGS. 3B-3Hmay be presented by the GUI 18 in response to the user selecting arespective view list at step 614 of the signal diagram 600.Additionally, the interfaces illustrated in FIGS. 3B-3H may be presentedin response to the application 16 populating a respective template forthe respective view list and sending a set of instructions to the mobilecomputing device 14 to present the interfaces on the GUI 18 at steps 632and 634 of the signal diagram 600, respectively.

With particular reference to FIGS. 3B and 3C, the GUI 18 is presenting alist of lists view list interface 644 and 646, respectively. Theinterfaces 644 and 646 include a display region to display a visualrepresentation of individual lists within the list of lists. In theexample illustrated on the interface 644, the individual lists are theDHT Area Alarms list, the DHT1 watch list, the Utilities Alarms list,the DHT2 watch list, and the Safety Alarms list. Each of the visualrepresentations of a list may include a summary of the list. Inparticular, if the list is a watch list, the summary may include anumber of watch list items within the watch list and a number of thosewatch list items having an abnormal state. On the other hand, if thelist is an alarm list, the summary may include a number of activeunacknowledged alarms within the alarm list, a number of inactiveunacknowledged alarms within the alarm list, and a number of suppressedalarms within the alarm list. The visual representations of the listswithin the list of lists may also include a friendly name of the list(e.g., DHT Area Alarms), a tag of a module monitored by the list (e.g.,FIC350112), and/or a particular alarm of the module (e.g., HI_HI).Further, the visual representation of lists within the watch listinclude an icon that indicates a type of list (e.g., watch list vs.alarm list) and a status of the list. In particular, for an alarm listthe status indicator corresponds to a highest priority unacknowledged orsuppressed alarm within the alarm list, and for a watch list, the statusindicator corresponds to whether or not the watch list includes a watchlist item in an abnormal state.

The interfaces 644 and 646 also include a tab selection interfaceenabling the user of the mobile computing device 14 to select a tab ofinformation to display on the GUI 18. As illustrated on the interfaces644 and 646, the tab selection interface includes selection elementscorresponding to a watch list tab of information, an alarm list tab ofinformation, or an all lists tab of information. Although not depictedon the interface 644 or 646, the tab selection interface may alsoinclude a batch list tab of information. Selecting a selection elementof the tab selection interface applies a filter (or removes a filter) tothe lists displayed in display region. For example, if the watch listsselection element is selected, only watch lists are displayed in thedisplay region. In the scenario illustrated on the interface 644, if thewatch lists selection element is selected, the display region isfiltered to only include the DHT1 watch list and the DHT2 watch list.

Additionally, the interfaces 644 and 646 include a search interfaceenabling the search for particular items included within a list of thelist of lists. The search interface may be configured to receive userinput indicative of a search term. For example, the user input may betext entered via a virtual or physical keyboard, speech captured by amicrophone of the mobile computing device, or other known techniques forreceiving user input indicative of a search term. The results of thesearch are displayed within the display region of the interface 644 and646. According to aspects, the search may be performed on the set ofcached data received by the mobile computing device 14 from the mobileserver 178. As a result, the search may be carried out by theapplication 16 without communicating with the mobile server 178,reducing the time required to complete the search.

Further, the interfaces 644 and 646 include a shared list toggleelement. To this end, each list within the list of lists may beclassified as either a personal list (e.g., a list where the user alonemay modify or configure the list) or a shared list (e.g., a list wheremultiple users may modify or configure the list). As illustrated on theinterface 646, when the shared list toggle element is active, thedisplay region includes both a list of personal lists and a list ofshared lists. Conversely, as illustrated on the interface 644, when theshared list toggle is inactive, the display region only includes thelist of personal lists.

Now with particular reference to FIG. 3D, the GUI 18 is presenting awatch list view list interface 648. In one scenario, the interface 648is presented in response to the user selecting the DHT1 watch list whenthe GUI 18 is presenting one of the interface 644 or 646. The interface648 includes a display region to display a visual representation ofindividual watch list items within the watch list. In the exampleillustrated on the interface 648, the individual watch list items areSour Nap FCC, Furnace Out Temp, Flash Drum Press, Strp Reboiler Te[mp],Strp Bottoms Lev[el] and Primary ACN Status. Each of the visualrepresentations of a watch list item may include a friendly name of thewatch list item (e.g., Sour Nap FCC), a tag of a module monitored by thewatch list item (e.g., FIC350112), and/or a hierarchical location of amodule monitored by the watch list item (e.g., . . .1/COMM/PRI/OLINTEG). Additionally, the visual representations mayinclude a parameter value for a primary role of the watch list item(e.g., 89.2) as well as a unit thereof (e.g., bpd). For example, theFurnace Out Temp watch list item, the primary role is to monitor aprocess value corresponding to a temperature of a furnace. As anotherexample, for the Primary ACN Status watch list item, the primary role isto monitor the status of the Primary ACN.

Further, the visual representation of the watch list item may alsoinclude a chart depicting a trend (e.g., the past 20 minutes of values)of parameters values corresponding to the primary role of the watch listitem. According to aspects, the chart may include a set point, or otherreference point, superimposed on the chart. The visual representation ofwatch list items may also include a status region that indicates astatus of the watch list item. For example, in the scenario illustratedon the interface 648, the Sour Nap FCC watch list item has an abnormalstatus. Accordingly, the status region for the Sour Nap FCC watch listitem includes an indicator of an abnormal status (e.g., the exclamationpoint). Conversely, the Furnace Out Temp watch list item has a normalstatus. Accordingly, on the illustrated interface 646, the status regionfor the Furnace Out Temp watch list item is blank.

Additionally, the interface 648 includes a search interface enabling thesearch for particular items included within a watch list. The searchinterface may be configured to receive user input indicative of a searchterm. For example, the user input may be text entered via a virtual orphysical keyboard, speech captured by a microphone of the mobilecomputing device, or other known techniques for receiving user inputindicative of a search term. The results of the search are displayedwithin the display region of the interface 648. According to aspects,the search may be performed on the set of cached data received by themobile computing device 14 from the mobile server 178. As a result, thesearch may be carried out by the application 16 without communicatingwith the mobile server 178, reducing the time required to complete thesearch.

Particularly referring to FIGS. 3E and 3F, the GUI 18 is presentingwatch list item view list interface 650 and 652, respectively. In onescenario, the interfaces 650 and 652 are presented in response to theuser selecting the Sour Nap FCC watch list item when the GUI 18 ispresenting interface 648. The interfaces 650 and 652 include a currentparameter value display region to display a visual representation of acurrent parameter value for one or more parameters monitored by thewatch list item. As illustrated on the interfaces 650 and 652, thecurrent parameter display region includes a parameter valuecorresponding to a process value (89.2), a set point value (50), and anoutput value (0.0). Of course, other interfaces may include additional,fewer, or alternative parameter values. The interfaces 650 and 652 alsoinclude a historical parameter value display region for displaying agraphical depiction of historical values of the one or more parametersmonitored by the watch list item. As illustrated on the interfaces 650and 652, the graphical depiction includes a graph showing historicalvalues for each of the process value, the set point value, and theoutput value.

In an aspect, the watch list item interfaces 650 and 652 correspond todifferent template. In particular, interface 650 corresponds to aportrait-mode template and the interface 652 to a landscape-modetemplate. Accordingly, the application 16 is configured to detect anorientation of the mobile computing device 14. The application 16populates the portrait-mode template to present the interface 650 on theGUI 18 when the mobile computing device 14 is in a portrait-modeorientation. Similarly, the application 16 populates the landscape-modetemplate to present the interface 652 on the GUI 18 when the mobilecomputing device 14 is in a landscape-mode orientation. As illustratedby the interfaces 650 and 652, the landscape-mode template includes alarger historical parameter value display region and a smaller currentparameter value display region than the portrait-mode template.

Additionally, the portrait-mode template presented on the interface 650includes an identification display region and an condition statusdisplay region. As illustrated on the interface 650, the identificationdisplay region includes an indication of a name of the watch list item(e.g., Sour Nap FCC), a description of the watch list item (e.g.,“Diesel Hydrotreater Unit 1 Inlet Flow from FCC”), a tag (e.g.,F1350112), and a path indicating a hierarchical location of a fielddevice 44 and/or control module 70 (e.g.,MySystemSiteName:DHT_AREA/DHT1/). As illustrated on the interface 650,the condition status display region includes an indication of one ormore conditions of the watch list item (e.g., “PV Bad” and “AbnormalMode”).

Turning to FIG. 3G, the GUI 18 is presenting an alarm list view listinterface 654. In one scenario, the interface 654 is presented inresponse to the user selecting the DHT Area Alarms alarm list when theGUI 18 is presenting one of the interface 644 or 646. The interface 654includes a display region to display a visual representation ofindividual alarm items within the alarm list. In the example illustratedon the interface 654, the individual alarms items are the HI_HI Sour NapFCC alarm, LO Furnace Out Temp alarm, HI Flash Drum Press alarm, BypassSour Nap FCC alarm, and the Interlock DHT1 XFR Pump alarm. Each of thevisual representations of an alarm item may include a friendly name ofthe alarm item (e.g., Sour Nap FCC), a tag of a module monitored by thewatch list item (e.g., FIC350112), and a particular alarm of the modulecorresponding to the alarm item (e.g., HI_HI). Additionally, the displayregion may include a status icon (e.g., a red circle) for alarm itemswithin the alarm list. The status icon may correspond to a priorityand/or state of the alarm item.

The interface 654 also include a tab selection interface enabling theuser of the mobile computing device 14 to select a tab of information todisplay on the GUI 18. As illustrated on the interface 654, the tabselection interface includes selection elements corresponding to anannunciated alarms tab of information and an suppressed alarms tab ofinformation. Selecting a selection element of the tab selectioninterface applies a filter (or removes a filter) to the lists displayedin display region. For example, if the annunciated alarms selectionelement is selected, only annunciated alarms are displayed in thedisplay region. In this example, the visual representation of the alarmitem includes an amount of time since the alarm item was announced. Onthe other hand, if the suppressed alarms selection element is selected,only suppressed alarms are displayed in the display region. Accordingly,the visual representation of the alarm item includes an amount of timesince the alarm item was suppressed.

Additionally, the interface 654 includes a search interface enabling thesearch for particular alarm items included within the alarm list. Thesearch interface may be configured to receive user input indicative of asearch term. For example, the user input may be text entered via avirtual or physical keyboard, speech captured by a microphone of themobile computing device, or other known techniques for receiving userinput indicative of a search term. The results of the search aredisplayed within the display region of the interface 654. According toaspects, the search may be performed on the set of cached data receivedby the mobile computing device 14 from the mobile server 178. As aresult, the search may be carried out by the application 16 withoutcommunicating with the mobile server 178, reducing the time required tocomplete the search.

Referring to FIG. 3H, the GUI 18 is presenting an alarm item view listinterface 656. In one scenario, the interface 656 is presented inresponse to the user selecting the Sour Nap FCC HI_HI alarm when the GUI18 is presenting one of the interface 654. The interface 656 includes anidentification display region to display information identifying thealarm item. As illustrated ion the interface 656, the identificationdisplay region may include an indication of a name of the alarm item(e.g., Sour Nap FCC), a module corresponding to the alarm item (e.g.,FIC350112), a description of the alarm item (e.g., DHT feed ratecritically high), and a functional classification of a modulecorresponding to the alarm item (e.g., environmental protection). Theidentification display region may include a status icon (e.g., a redcircle) indicating a priority and/or state of the alarm item.

As illustrated on the interface 656, the interface 656 includes an alarmtimer display region. The alarm timer display region displays an alarmtimer corresponding to the alarm item. When the alarm item is anannunciated alarm, the alarm timer display region indicates a time atwhich the alarm item was annunciated and a time since the alarm wasannunciated. When the alarm item is a suppressed alarm, the alarm timerdisplay region indicates a time at which the alarm item was suppressedand a time since the alarm was suppressed.

Additionally, the interface 656 also includes a response display region.The response display region includes an indication of a consequence ofinaction (e.g., “Economic-Major: $100 k to $500 k potential loss) and arecommend action to respond to the alarm item (e.g., “Crosscheck readingfrom L1-UT11 . . . ”). When the alarm item is an annunciated alarm, theresponse display region includes a time to respond to alarm item (e.g.,less than 15 minutes) and a timer that represents a difference betweenthe time the alarm item was annunciated and the time to respond (e.g.,00:13:24). When the alarm item is a suppressed alarm, the responsedisplay region includes a reason why the alarm item was suppressed(e.g., chattering or fleeting behavior) and a timer that represents atotal amount of time the alarm has been suppressed (e.g., 11:16:36).

The interface 656 also includes a historical parameter value displayregion for displaying a graphical depiction of historical values of aparameter corresponding to the alarm item. The graphical depictionincludes an identification of the parameter monitored by the alarm item(e.g., FIC350112/PV). According to aspects, the graphical depiction alsoincludes an alarm limit line corresponding to a limit that triggered thealarm item.

It should be appreciated that the user of the mobile computing device 14may customize the interfaces 644-656. For example, the user may be ableto zoom or rescale a graphical depiction or chart, rearrange the orderitems are displayed within a list, and/or modify a set of displayedparameters. One particular customization of a watch list, such as thewatch list included on the interface 648, includes the ability toreconfigure the watch list to create a combined watch list item thatincludes a combined graphical representation of a parameter value forone or more watch list items. This customization is shown through aseries of watch list view list interfaces 658-666 illustrated in FIGS.31-3M, respectively. The series of interfaces 658-666 is generatedwithin the application 16 executing on the mobile computing device 14.

The combined watch list item process begins with the interface 658illustrated in FIG. 3I, which depicts the user selecting an edit buttonthe interface 658. In response, as illustrated on the interface 660 ofFIG. 3J, the application 16 presents a watch list editing interface onthe GUI 18. According to aspects, for each watch list item, the watchlist editing interface enables the user to edit a location of acorresponding current parameter value and a corresponding graphicaldepiction of historical values separately. As illustrated on theinterface 660, each watch list item includes an upper slider elementcorrespond to a location of the current parameter value and a lowerslider element corresponding to the graphical depiction of historicalvalues. The scenario illustrated in 3J depicts the user beginning todrag the slider element corresponding to the graphical depiction ofhistorical values for the Diesel Product Temp watch list item. The dragof the slider elements ends in the scenario depicted on the interface662, as illustrated in FIG. 3K. More particularly, the interface 662depicts the user dragging the slider element to the bottom of the watchlist. As illustrated on the interface 662, the dragging of the sliderelement separated the current parameter value location and the graphicaldepiction of historical values location for the Diesel Product Tempwatch list item within the watch list.

As depicted on the interface 664 of FIG. 3L, the combination processcontinues when the user of the mobile computing device 14 drags theslider corresponding the graphical depiction of historical values forthe Kerosene Product Temp watch list item to the bottom of the watchlist. As illustrated on the interface 662, the dragging of the sliderelement similarly separated the current parameter value location and thegraphical depiction of historical values location for the KeroseneProduct Temp watch list item within the watch list. To confirm combiningthe graphical depictions of historical values for the Diesel ProductTemp and the Kerosene Product Temp watch list items, the user selectsthe “Done” element of the interface 664. As FIG. 3M illustrates on theinterface 666, the application 16 then combines the graphical depictionsof historical values for the Diesel Product Temp and the KeroseneProduct Temp watch list items into a single graphical depiction. Itshould be appreciated that any customizations to a view list, includingcombining two watch list items, modifies the template corresponding tothe view list accordingly. As a result, any customizations to the viewlist are stored on the mobile computing device 14 and can be readilyaccessed by application 16 at a later time.

As another example, many users may have become accustomed to viewingprocess values on interfaces generated at the workstations 30 or 32.Generally speaking, these interfaces were not designed with mobilecomputing devices in mind. As a result, the interfaces generated by themobile computing device 14 and the workstations 30 or 32 may vary inseveral aspects. This may lead to user confusion or a lack of uptake tousing the application 16. Accordingly, view lists may include a viewmode toggle element to use a view list template that approximates a viewthat would be generated at the workstations 30 or 32. In an embodiment,this view list template is generated based upon an data originated by anL1 display module, such as the one illustrated in FIG. 1F.

List Configuration

FIG. 3N illustrates an example list configuration method 368 forconfiguring a list of process data items via an application, such as theapplication 16, executing a mobile computing device, such as the mobilecomputing device 14. The list configuration method 368 may beimplemented at a plurality of mobile computing devices in communicationwith the mobile server 178. The list configuration method 368 may beimplemented may also be implemented in conjunction with one or more ofthe other methods described herein.

The method 368 begins with block 370 where the mobile computing device14 receives an indication that a user of the mobile computing device 14is configuring a list of process data items. In one embodiment, theapplication 16 includes a list configuration interface that enables theuser to configure one or more lists associated with the user. The listconfiguration interface may be presented by the mobile computing device14, for example, in response to the user selecting an edit button on thewatch list interface 348 or the alarm list interface 354. Accordingly,the indication that the user is configuring a list of process data itemsmay be an indication to present the list configuration interface.

At block 372, the mobile computing device 14 accesses a hierarchicallist of available process data items. As described above, thehierarchical list of process data items may include a first hierarchicallevel indicating an area in a process plant, a second hierarchical levelindicating a process unit within areas in the process plant, a thirdhierarchical level indicating modules within process units, and/or afourth hierarchical level indicating a particular process control systemfrom a plurality of process control systems. In one scenario, the mobilecomputing device 14 accesses a local copy of the hierarchical list ofavailable process data items stored at the mobile computing device 14.In another scenario, the mobile computing device 14 transmits a requestto the mobile server 178 that the mobile server 178 retrieves and sendsthe hierarchical list of available process data items, or a portionthereof in response to a query or search term, to the mobile computingdevice 14. In this scenario, the request the mobile computing device 14may also include a user credential corresponding to the user of themobile computing device 14. Based on the user credential, the mobileserver 178 filters a hierarchical list of all available process dataitems for one or more process control systems to include only theavailable process data items to which the has permission to access.

According to aspects, the hierarchical list of available process dataitems may include a set of preexisting selections corresponding to thelist. To this end, the list may have been previously created and storedat a list database interconnected with the mobile server 178.Accordingly, the set of preexisting selections includes one or more aselection of process data items that the list is currently configured tomonitor. To receive the set of preexisting selections, the mobilecomputing device 14 transmits an indication of the list to the mobileserver 178. In response, the mobile server 178 accesses the list at thelist database and sends the set of preexisting selections to the mobilecomputing device 14. It should be appreciated that in embodiments inwhich the list is shared list, a portion of the preexisting selectionsmay be a selected by a user other than the user of the mobile computingdevice 14. Of course, if the user is configuring a new list, then thereare no preexisting selections corresponding to the list.

At block 374, the mobile computing device presents a selectioninterface, for selecting process data items from the hierarchical listof available process data items. With concurrent reference to FIG. 3P,the interface 382 is an example selection interface presented by themobile computing device 14. To present the selection interface, theapplication 16 prepopulates the hierarchical list of available processdata items with the preexisting selections such that the selectioninterface indicates the preexisting selections are included within thelist. In the scenario illustrated on the interface 382, a watch list isprepopulated with watch list items corresponding to the 02 control,Stream Flow, Gas Flow, and so on. The selection interface also enablesthe user to dynamically rearrange an order of items within the list,such as by dragging an item to a new location in the list. In anembodiment, one or more of the items displayed in the selectioninterface include a visualization of a current process value and/or atrend of prior process values.

According to aspects, the selection interface may also include a searchinterface to filter the hierarchical list of available process dataitems based upon a search term. As illustrated on the interface 382, thesearch interface may include a search box configured to receive thesearch term. With concurrent reference to FIG. 3Q, the interface 384 isan example search interface displaying search results. The interface 384may be presented to the user entering “Crude Tower Temp” into the searchbox presented on the interface 382. Because the list illustrated on theselection interface 382 is a watch list, the search results includemodules that match the search term (in this case, modules that arelocated in the Crude Tower process unit and include a temp parameter).In one embodiment, selecting a module from the search results interface384 enables the user to select a watch list item corresponding to amodule parameter (e.g., a process value, a set point value, or an outputvalue) included in the hierarchical list of available process dataitems. In embodiments in which the list is an alarm list, the searchresults interface 384 enables the user to select an alarm associatedwith the module. In any event, selecting the process data itemassociated with the module includes the process data in the selection ofa set of process data items.

In another aspect, the selection interface may also include a filterinterface for filtering the hierarchical list of available process dataitems by an entry included in a hierarchical level of the hierarchicallist. With concurrent reference to FIG. 3R, the interface 386 is anexample filter interface displaying a filtered hierarchical list ofavailable process data items. The interface 386 may be presented inresponse to the user selecting an add button on the interface 382, or byselecting a filters button on an alternative selection interface. Asillustrated on the interface 386, the filter interface enables filteringat a site hierarchical level (e.g., Site1), an area hierarchical level(e.g., boiler area), a process unit level (e.g., Air), or a modulehierarchical level (e.g., PIC-11-401). In addition to hierarchicallevel, the filter interface may enable filtering the hierarchical listof available process data items by functional classification (e.g.,product quality or safety), priority (e.g., critical or advisory),and/or class (e.g., process or device) of the process data item. In anembodiment, the hierarchical list of available process data items mayalso be filtered based on access rights associated with the process dataitem (e.g., filter based on a location of users having access, role ofusers having access, or shift worked by users having access). On theillustrated interface 386, each process data item corresponds to a checkbox. Any selection (including the preexisting selections) of a processdata item included in the list may include a check mark to indicate thatthe list includes the process data item. The user may indicate aselection by checking a check box corresponding to an entry at ahierarchical level. Accordingly, the checked process data item and/orall process data items hierarchically stemming from the checked entryare included in the selection of the set of process data items.

At block 376, the application 16 receives the selection of the set ofprocess data items, e.g., the process data items selected via the searchinterface and/or the filter interface. Then, at block 378, the mobilecomputing device 14 transmits the set of process data items to themobile server 178. In an embodiment, the mobile computing device 14transmits the set of process data items as each selection is made. Inanother embodiment, the mobile computing device 14 transmits the set ofprocess data items after the user indicates that the user has finishedconfiguring the list of process data items (e.g., clicking a donebutton). In response, the mobile server 178 updates the list database toinclude the process data items included in the set of process data itemstransmitted by the mobile computing device 14.

At block 380, the mobile computing device 14 receives, from the mobileserver 178, a set of data values associated with the set of process dataitems. As explained elsewhere herein, when the mobile server 178 updatesthe list as stored in the list database, the mobile server 178subscribes the mobile computing device 14 to a data stream of processvalues associated with process data items in the set of process dataitems. Accordingly, a portion of the set of data values received at themobile computing device are received as part of the data stream ofprocess values.

In a scenario, the selection of the set of process data items receivedat block 376 includes an indication that the user deselected aparticular process data item included within the set of preexistingselections. To this end, the user may have unchecked a box of the filterinterface 386 and/or selected a delete button corresponding to a processdata item displayed on the selection interface 382. Accordingly, inresponse to the mobile computing device 14 transmitting the indicationof the deselection to the mobile server 178 at block 378, the mobileserver 178 unsubscribes the mobile computing device 14 from the datastream associated with the deselected process data item. As a result,the set of data values received from the mobile server 178 at block 380does not include data values associated with the deselected process dataitem.

In an aspect, the selection interface includes a comment interface. Thecomment interface enables the user of the mobile computing device 14 toenter comments corresponding to the list and/or process data itemsincluded list. For example, the comment interface may enable to includea comment at the list level the user believes a boiler is overheating,then a comment at a process data item level of a process data itemcorresponding to a boiler temperature that indicates the particularreasoning why the user believes the boiler is overheating. In thisexample, the list level comment was entered into the comment interfacewhile viewing a list view, and the process data item level comment wasentered into the comment interface while viewing the process data item.It should be appreciated that because these comments are associated withthe list, the comments are viewable to any user who views the list(assuming, as described below, the user has appropriate access rights).

According to aspects, the list corresponds to a set of access rightsthat control the ability of others to interact with the list. Forexample, the access rights may include a right to view the list, a rightto modify the list, a right to share the list, a right to view comments,and so on. These access right may vary between and among various users.Accordingly, in addition to configuring the process data items includedin the list, the selection interface may also include a user accessinterface to configure access to the list.

FIG. 3S illustrates an example user access configuration method 388 forconfiguring access rights to a list via an application, such as theapplication 16, executing a mobile computing device, such as the mobilecomputing device 14. The user access configuration 388 may beimplemented at a plurality of mobile computing devices in communicationwith the mobile server 178. The list configuration method 368 may beimplemented may also be implemented in conjunction with one or more ofthe other methods described herein.

The method 388 begins at block 390 where the mobile computing device 14receives a set of users and corresponding access rights from the mobileserver 178. The corresponding access rights indicate a type of access tothe list for the corresponding user. Accordingly, the set of users mayinclude a set of users having each type of access, for example a set ofusers having viewing access rights and/or a set of users havingmodification access rights. To receive the set of users andcorresponding access rights, the mobile computing device 14 may transmitan indication of the list, for example, the indication transmitted toreceive the set of preexisting selections as described with respect tothe method 368.

At block 392, the mobile computing device 14 presents a user accessinterface on the GUI 18 of the mobile computing device 14. The useraccess interface may be presented in response to the user selecting theusers button illustrated on the interfaces 382 or 386. With concurrentreference to FIG. 3T, the interface 398 is an example user accessinterface displaying the set of users. As illustrated on the interface398, the user access interface enables the user of the mobile computingdevice 14 to configure access rights for individual users (e.g., Bob orJenny) or for groups of individuals (e.g., DHT Operators orEnvironmental). Although the interface 398 only depicts functionalclassification groups, the user access interface may also include groupsarranged by a location of users within the group, a shift worked byusers in the group, and/or a role of users within the group.

On the illustrated interface 398, each user or group of userscorresponds to a check box. Any selection (including preexistingselections) of a user may include a check mark to indicate that the listprovides an access right to the user. Accordingly, the user may indicatea selection f an access right by checking a check box corresponding to aparticular user or group of users. Although not illustrated on theinterface 398, the user access interface may enable the user to setaccess rights for the different types of access separately. To this end,the user access interface may include an access right selectioninterface to enable the user to switch between the various access rightsbeing configured. In one scenario, a particular user has access rightsto view a list, but not access rights to modify the list. In an aspect,the user access interface includes a search interface configured tofilter the set of users based upon a search term.

At block 396, the mobile computing device 14 receives a selection of aset of user access rights. More particularly, the mobile computingdevice 14 receives a set of user access rights selections that the usermade while interacting with the user access interface.

At block 396, the mobile computing device 14 transmits the set of useraccess rights to the mobile server 178. In response, the mobile server178 updates the record corresponding to the list in the list database inaccordance with the set of user access rights. As a result, when the setof user access rights includes a new access right for a particular user,the mobile server 178 transmits a set of data values associated with aset of process data items included in the list to a mobile computingdevice of the particular user. Additionally or alternatively, the mobileserver 178 may transmit a notification to the mobile computing device ofthe particular user to inform the user as to the new access right. Inone embodiment, the application 16 enables the user to send thenotification from the mobile computing device 14, for example, via a SMSmessage or a messaging service supported by the application 16. In anaspect, the user access interface includes an interface to receive anote (such as text and/or speech recordings) to include in thenotification. As a result, regardless of how the notification istransmitted to the mobile computing device of the particular user, thenotification includes the note.

The following list of aspects reflects a variety of the embodimentsexplicitly contemplated by the present application. Those of ordinaryskill in the art will readily appreciate that the aspects below areneither limiting of the embodiments disclosed herein, nor exhaustive ofall of the embodiments conceivable from the disclosure above, but areinstead meant to be exemplary in nature.

1. A method of securely subscribing a remote computing device to obtainprocess data from a process control system of a process plant,comprising: receiving, at a mobile server via a first network from adata server, configuration data indicating a configuration of theprocess control system; establishing, by the mobile server, acommunication connection with the remote computing device via a secondnetwork; receiving, at the mobile server via the second network from theremote computing device, an indication of a view list requesting processdata associated with the process control system, wherein the processdata corresponds to available data indicated by the configuration data;receiving, at the mobile server via the first network from the dataserver, a polling request for a list of data to be sent from the dataserver to the mobile server; determining, by the mobile server, the listof data based at least in part upon the view list; sending, from themobile server to the data server via the first network, the list of datain response to the polling request; receiving, at the mobile server viathe first network from the data server, a plurality of data valuesassociated with the list of data; and sending, from the mobile server tothe remote computing device via the second network, a view setcontaining at least some of the plurality of data values correspondingto the view list associated with the remote computing device.

2. The method of aspect 1, wherein the configuration data is received asone or more configuration files used by one or more process controllersto control operation of the process plant.

3. The method of aspect 2, wherein the one or more configuration filesinclude information regarding a hierarchy of equipment and controlmodules within the process control system.

4. The method of aspect 2, wherein the one or more configuration filesinclude a plurality of alarms associated with the equipment and controlmodules.

5. The method of any one of aspects 1 to 4, further comprising:receiving, at the mobile server via a first network from a data server,additional data associated with the process plant, and wherein the viewlist further includes at least part of the additional data.

6. The method of aspect 5, wherein the additional data includes one ormore of the following: key performance indicators (KPIs), batchinformation, maintenance information, efficiency information, knowledgebase information regarding equipment or conditions within the processplant, decision support information, or schedule information.

7. The method of any one of aspects 1 to 6, further comprising:generating, by the mobile server, a hierarchical list of the availabledata based upon the received configuration data; and sending, from themobile server to the remote computing device via the second network, aplurality of entries associated with entities within the hierarchicallist of the available data for selection of the requested process dataof the view list by a user of the remote computing device.

8. The method of any one of aspects 1 to 7, wherein establishing thecommunication connection with the remote computing device includesauthenticating the remote computing device or a user of the remotecomputing device and further includes determining an authorization levelof the remote computing device or user, the authorization levelindicating a set of the process data the remote computing device or useris authorized to receive.

9. The method of any one of aspects 1 to 8, further comprising:receiving, at the mobile server via the second network from additionalremote computing devices, additional indications of additional viewlists requesting additional process data associated with the processcontrol system, wherein at least part of the additional process datarequested in the additional view lists is distinct from the process datarequested in the view list, and wherein the list of data is determinedbased at least in part upon the view list and the additional view lists.

10. The method of aspect 9, wherein determining the list of dataincludes combining the view list with the additional view lists andremoving redundant entries.

11. The method of any one of aspects 1 to 10, wherein the pollingrequest from the data server is received periodically.

12. The method of any one of aspects 1 to 11, wherein the mobile serveronly sends information to the data server in response to the pollingrequest from the data server.

13. The method of any one of aspects 1 to 12, wherein determining thelist of data includes identifying one or more related data itemsassociated with requested data items included in the view list.

14. The method of aspect 13, wherein the one or more related data itemsinclude historical data associated with the requested data items.

15. The method of any one of aspects 1 to 14, wherein the indication ofthe view list is an indication of a predetermined view list stored on amemory of the mobile server.

16. The method of any one of aspects 1 to 15, further comprising:receiving, at the data server via the first network from the mobileserver, the list of data in response to the polling request; receiving,at the data server via a third network from a plurality of data sourceswithin the process control system, a plurality of data signalsassociated with the process plant; identifying, by the data server, theplurality of data values from the plurality of data signals based uponthe received list of data; transmitting, from the data server via thesecond network to the mobile server, the plurality of data values.

17. The method of aspect 16, wherein the plurality of data sourcesincludes a plurality of process controllers within the process controlsystem.

18. The method of aspect 16, wherein the plurality of data sourcesincludes at least one data historian storing historical process datafrom the process control system, and further comprising: sending, fromthe data server via the third network to the data historian, a requestfor one or more historical data values from the historical process data,and wherein the plurality of data signals include the one or morerequested historical data values.

19. The method of aspect 16, wherein the plurality of data signalsincludes a plurality of data streams of process data values generatedwithin a plurality of components of the process control system.

20. The method of aspect 19, wherein the data server receives theprocess data values of the data streams in real-time as each processdata value is generated within the process control system.

21. The method of any one of aspects 1 to 20, further comprising:receiving, at the mobile server via the second network from additionalremote computing devices, additional indications of additional viewlists requesting additional process data associated with the processcontrol system; generating, by the mobile server, an indicator of a datasubscription for each of the remote computing device and the additionalremote computing devices, wherein the indicator of the data subscriptionindicates the data to be communicated to each of the respective remotecomputing device or the respective additional remote computing device;and selecting, by the mobile server, the plurality of data valuesassociated with the list of data for the remote computing device basedupon the indicator of the data subscription associated with the remotecomputing device.

22. The method of any one of aspects 1 to 21, further comprising:presenting, by a graphical user interface of the remote computingdevice, at least a part of the view set to a user of the remotecomputing device.

23. The method of any one of aspects 1 to 22, wherein the communicationconnection is established via an application program interface (API)configured to facilitate communication with remote devices via thesecond network.

24. The method of any one of aspects 1 to 23, wherein the mobile serverfurther includes summary information not included in the configurationdata, and the view list further includes one or more summary informationdata items corresponding to at least part of the summary information.

25. The method of any one of aspects 1 to 24, further comprising:receiving, at the mobile server via the second network from the remotecomputing device, an indication of a second view list, wherein thesecond view list requests less data than the view list; receiving, atthe mobile server via the first network from the data server, a secondpolling request for a second list of data to be sent from the dataserver to the mobile server; determining, by the mobile server, thesecond list of data based at least in part upon the second view list;sending, from the mobile server to the data server via the firstnetwork, an indication of the second list of data in response to thesecond polling request; receiving, at the mobile server via the firstnetwork from the data server, a second plurality of data valuesassociated with the second list of data; and determining, by the mobileserver, a subset of the second plurality of data values to send to theremote computing device.

26. The method of aspect 25, wherein the subset of the second pluralityof data values is empty.

27. The method of aspect 25, wherein the indication of the second listof data includes only indications of changes from the list of data.

28. The method of any one of aspects 1 to 27, wherein: the view listincludes a first set of process data parameters; the list of dataincludes a second set of process data parameters, including at least thefirst set of process data parameters; the plurality of data valuesincludes a plurality of process data parameter values associated withthe second set of process data parameters; and the view set includes atleast some of the plurality of process data parameters values, the atleast some of the plurality of process data parameter values beingassociated with the first set of process data parameters.

29. The method of any one of aspects 1 to 28, wherein the plurality ofdata values associated with the list of data includes only data valuesassociated with new or updated data values.

30. The method of any one of aspects 1 to 29, wherein at least a part ofthe second network includes an external network not associated with theprocess control system.

31. The method of any one of aspects 1 to 30, wherein the plurality ofdata values are only L1 Data from the process control system.

32. A computer system for communicating process data from a processcontrol system of a process plant to a remote computing device,comprising: one or more processors; one or more communication unitsconfigured to send and receive data via a first network and a secondnetwork; a memory storing executable instructions that, when executed bythe one or more processors, cause the computer system to implement aplurality of modules, including: one or more scanners that interfacewith the one or more communication units to enable communication with adata server via the first network by: receiving data from the dataserver, identifying polling requests in the data received from the dataserver, and transmitting request lists to the data server in response tothe polling requests; a data stream processor that determines a set ofprocess data values in the data received from the data server, the setof process data values corresponding to view list data to becommunicated to the remote computing device; and an application programinterface (API) that interfaces with the one or more communication unitsto enable communication with the remote computing device via the secondnetwork by transmitting the set of process data values to the remotecomputing device.

33. The computer system of aspect 32, wherein the data received by theone or more scanners includes configuration data and process data.

34. The computer system of aspect 33, wherein the configuration data isreceived as one or more configuration files used by one or more processcontrollers to control operation of the process plant.

35. The computer system of aspect 34, wherein the one or moreconfiguration files include information regarding a hierarchy ofequipment and control modules within the process control system.

36. The computer system of aspect 34, wherein the one or moreconfiguration files include a plurality of alarms associated with theequipment and control modules.

37. The computer system of aspect 33, wherein the configuration data isreceived periodically and at least part of the process data is receivedaperiodically.

38. The computer system of claim B33, wherein the data received by theone or more scanners further includes additional data associated withthe process plant, the additional data including one or more of thefollowing: key performance indicators (KPIs), batch information,maintenance information, efficiency information, knowledge baseinformation regarding equipment or conditions within the process plant,decision support information, or schedule information.

39. The computer system of aspect 33, wherein: the process data isreceived as one or more data streams of process data values generatedwithin a plurality of components of the process control system; and theprocess data values are received by the one or more scanners inreal-time as each process data value is generated within the processcontrol system.

40. The computer system of any one of aspects 32 to 39, wherein thepolling requests are received periodically.

41. The computer system of any one of aspects 32 to 40, wherein: therequest lists are transmitted only in response to the polling requests;and the computer system only transmits request lists to the data server.

42. The computer system of any one of aspects 32 to 41, wherein: thedata stream processor further determines a plurality of additional setsof process data values in the data received from the data server, eachadditional set of process data values being associated with one or moreof a plurality of additional remote computing devices; and the APIfurther transmits each additional set of process data values to therespective one or more of the additional remote computing devices.

43. The computer system of any one of aspects 32 to 42, wherein: thedata stream processor further identifies in the data an alarm totransmit to the remote computing device, and the API further transmitsthe identified alarm to the remote computing device.

44. The computer system of aspect 43, wherein the API transmits theidentified alarm to the remote computing device via a notificationservice that causes the alarm to be displayed at the remote computingdevice regardless of whether the remote computing device has requestedany process data.

45. The computer system of any one of aspects 32 to 44, wherein the APIfurther enables communication by: transmitting a list of available datato the remote computing device based upon configuration data included inthe data received from the data server; and receiving an indication of aview list associated with the view list data from the remote computingdevice.

46. The computer system of aspect 45, wherein the indication of the viewlist is an indication of a predetermined view list stored in the memory.

47. The computer system of any one of aspects 32 to 46, wherein: theview list data includes a first set of process data parameters; therequest list includes a second set of process data parameters, includingat least the first set of process data parameters; the data receivedfrom the data server includes a plurality of process data parametervalues associated with the second set of process data parameters; andthe set of process data values corresponding to the view list dataincludes at least some of the plurality of process data parametersvalues, the at least some of the plurality of process data parametervalues being associated with the first set of process data parameters.

48. The computer system of any one of aspects 32 to 47, wherein thememory further stores executable instructions that cause the computersystem to implement an authentication module that determines an identityof the remote computing device, and wherein the data stream processordetermines the set of process data values based upon the determinedidentity of the remote computing device.

49. The computer system of any one of aspects 32 to 48, wherein theremote computing device identity is determined as a user account inresponse to receiving, via the second network, an indication of a userlogging in to an application executing on the remote computing device.

50. The computer system of any one of aspects 32 to 49, wherein at leasta part of the second network includes an external network not associatedwith the process control system.

51. The computer system of any one of aspects 32 to 50, wherein the setof process data values contains only L1 Data from the process controlsystem.

What is claimed:
 1. A method of securely subscribing a remote computingdevice to obtain process data from a process control system of a processplant, comprising: receiving, at a mobile server via a first networkfrom a data server, configuration data indicating a configuration of theprocess control system; establishing, by the mobile server, acommunication connection with the remote computing device via a secondnetwork; receiving, at the mobile server via the second network from theremote computing device, an indication of a view list requesting processdata associated with the process control system, wherein the processdata corresponds to available data indicated by the configuration data;receiving, at the mobile server via the first network from the dataserver, a polling request for a list of data to be sent from the dataserver to the mobile server; determining, by the mobile server, the listof data based at least in part upon the view list; sending, from themobile server to the data server via the first network, the list of datain response to the polling request; receiving, at the mobile server viathe first network from the data server, a plurality of data valuesassociated with the list of data; and sending, from the mobile server tothe remote computing device via the second network, a view setcontaining at least some of the plurality of data values correspondingto the view list associated with the remote computing device.
 2. Themethod of claim B1, wherein (i) the configuration data is received asone or more configuration files used by one or more process controllersto control operation of the process plant, and/or (ii) the one or moreconfiguration files include information regarding a hierarchy ofequipment and control modules within the process control system, and/or(iii) the one or more configuration files include a plurality of alarmsassociated with the equipment and control modules.
 3. The method ofclaim 1, further comprising: receiving, at the mobile server via a firstnetwork from a data server, additional data associated with the processplant, and wherein the view list further includes at least part of theadditional data.
 4. The method of claim 3, wherein the additional dataincludes one or more of the following: key performance indicators(KPIs), batch information, maintenance information, efficiencyinformation, knowledge base information regarding equipment orconditions within the process plant, decision support information, orschedule information.
 5. The method of claim 1, further comprising:generating, by the mobile server, a hierarchical list of the availabledata based upon the received configuration data; and sending, from themobile server to the remote computing device via the second network, aplurality of entries associated with entities within the hierarchicallist of the available data for selection of the requested process dataof the view list by a user of the remote computing device.
 6. The methodof claim 1, wherein establishing the communication connection with theremote computing device includes authenticating the remote computingdevice or a user of the remote computing device and further includesdetermining an authorization level of the remote computing device oruser, the authorization level indicating a set of the process data theremote computing device or user is authorized to receive.
 7. The methodof claim 1, further comprising: receiving, at the mobile server via thesecond network from additional remote computing devices, additionalindications of additional view lists requesting additional process dataassociated with the process control system, wherein at least part of theadditional process data requested in the additional view lists isdistinct from the process data requested in the view list, and whereinthe list of data is determined based at least in part upon the view listand the additional view lists.
 8. The method of claim 7, whereindetermining the list of data includes combining the view list with theadditional view lists and removing redundant entries.
 9. The method ofclaim 1, wherein the polling request from the data server is receivedperiodically.
 10. The method of claim 1, wherein the mobile server onlysends information to the data server in response to the polling requestfrom the data server.
 11. The method of claim 1, wherein the indicationof the view list is an indication of a predetermined view list stored ona memory of the mobile server.
 12. The method of claim 1, wherein thecommunication connection is established via an application programinterface (API) configured to facilitate communication with remotedevices via the second network.
 13. The method of claim 1, wherein themobile server further includes summary information not included in theconfiguration data, and the view list further includes one or moresummary information data items corresponding to at least part of thesummary information.
 14. The method of claim 1, wherein: the view listincludes a first set of process data parameters; the list of dataincludes a second set of process data parameters, including at least thefirst set of process data parameters; the plurality of data valuesincludes a plurality of process data parameter values associated withthe second set of process data parameters; and the view set includes atleast some of the plurality of process data parameters values, the atleast some of the plurality of process data parameter values beingassociated with the first set of process data parameters.
 15. The methodof claim 1, wherein the plurality of data values associated with thelist of data includes only data values associated with new or updateddata values.
 16. The method of claim 1, wherein at least a part of thesecond network includes an external network not associated with theprocess control system.
 17. A computer system for communicating processdata from a process control system of a process plant to a remotecomputing device, comprising: one or more processors; one or morecommunication units configured to send and receive data via a firstnetwork and a second network; a memory storing executable instructionsthat, when executed by the one or more processors, cause the computersystem to implement a plurality of modules, including: one or morescanners that interface with the one or more communication units toenable communication with a data server via the first network by:receiving data from the data server, identifying polling requests in thedata received from the data server, and transmitting request lists tothe data server in response to the polling requests; a data streamprocessor that determines a set of process data values in the datareceived from the data server, the set of process data valuescorresponding to view list data to be communicated to the remotecomputing device; and an application program interface (API) thatinterfaces with the one or more communication units to enablecommunication with the remote computing device via the second network bytransmitting the set of process data values to the remote computingdevice.
 18. The computer system of claim 17, wherein the data receivedby the one or more scanners includes configuration data and processdata.
 19. The computer system of claim 18, wherein the configurationdata is received as one or more configuration files used by one or moreprocess controllers to control operation of the process plant.
 20. Thecomputer system of claim 19, wherein the one or more configuration filesinclude information regarding a hierarchy of equipment and controlmodules within the process control system.
 21. The computer system ofclaim 18, wherein the configuration data is received periodically and atleast part of the process data is received aperiodically.
 22. Thecomputer system of claim 18, wherein: the process data is received asone or more data streams of process data values generated within aplurality of components of the process control system; and the processdata values are received by the one or more scanners in real-time aseach process data value is generated within the process control system.23. The computer system of claim 17, wherein: the request lists aretransmitted only in response to the polling requests; and the computersystem only transmits request lists to the data server.
 24. The computersystem of claim 17, wherein: the data stream processor furtherdetermines a plurality of additional sets of process data values in thedata received from the data server, each additional set of process datavalues being associated with one or more of a plurality of additionalremote computing devices; and the API further transmits each additionalset of process data values to the respective one or more of theadditional remote computing devices.
 25. The computer system of claim17, wherein: the data stream processor further identifies in the data analarm to transmit to the remote computing device, and the API furthertransmits the identified alarm to the remote computing device.
 26. Thecomputer system of claim 25, wherein the API transmits the identifiedalarm to the remote computing device via a notification service thatcauses the alarm to be displayed at the remote computing deviceregardless of whether the remote computing device has requested anyprocess data.
 27. The computer system of claim 17, wherein the memoryfurther stores executable instructions that cause the computer system toimplement an authentication module that determines an identity of theremote computing device, and wherein the data stream processordetermines the set of process data values based upon the determinedidentity of the remote computing device.